OLD | NEW |
| (Empty) |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "chrome/browser/chromeos/extensions/file_manager/event_router.h" | |
6 | |
7 #include "base/prefs/pref_service.h" | |
8 #include "chrome/browser/chromeos/extensions/file_manager/file_browser_private_a
pi.h" | |
9 #include "chrome/browser/chromeos/extensions/file_manager/file_browser_private_a
pi_factory.h" | |
10 #include "chrome/browser/profiles/profile.h" | |
11 #include "chrome/browser/ui/browser.h" | |
12 #include "chrome/common/pref_names.h" | |
13 #include "chrome/test/base/in_process_browser_test.h" | |
14 #include "chromeos/disks/disk_mount_manager.h" | |
15 #include "chromeos/disks/mock_disk_mount_manager.h" | |
16 | |
17 using testing::_; | |
18 using chromeos::disks::DiskMountManager; | |
19 using chromeos::disks::MockDiskMountManager; | |
20 | |
21 namespace file_manager { | |
22 | |
23 class FileManagerEventRouterBrowserTest : public InProcessBrowserTest { | |
24 public: | |
25 // ExtensionApiTest override | |
26 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE { | |
27 InProcessBrowserTest::SetUpInProcessBrowserTestFixture(); | |
28 | |
29 disk_mount_manager_mock_ = new MockDiskMountManager; | |
30 chromeos::disks::DiskMountManager::InitializeForTesting( | |
31 disk_mount_manager_mock_); | |
32 disk_mount_manager_mock_->SetupDefaultReplies(); | |
33 } | |
34 | |
35 MockDiskMountManager* disk_mount_manager_mock_; | |
36 }; | |
37 | |
38 IN_PROC_BROWSER_TEST_F(FileManagerEventRouterBrowserTest, | |
39 ExternalStoragePolicyTest) { | |
40 FileBrowserPrivateAPI* file_browser = | |
41 FileBrowserPrivateAPIFactory::GetForProfile(browser()->profile()); | |
42 EventRouter* event_router = | |
43 file_browser->event_router(); | |
44 | |
45 DiskMountManager::DiskEvent event = DiskMountManager::DISK_ADDED; | |
46 // Prepare a fake disk. All that matters here is that the mount point is empty | |
47 // but the device path is not so that it will exercise the path we care about. | |
48 DiskMountManager::Disk disk( | |
49 "fake_path", "", "X", "X", "X", "X", "X", "X", "X", "X", "X", "X", | |
50 chromeos::DEVICE_TYPE_USB, 1, false, false, true, false, false); | |
51 | |
52 // First we set the policy to prevent storage mounting and check that the | |
53 // callback is not called. | |
54 browser()->profile()->GetPrefs()->SetBoolean(prefs::kExternalStorageDisabled, | |
55 true); | |
56 | |
57 EXPECT_CALL(*disk_mount_manager_mock_, MountPath(_, _, _, _)).Times(0); | |
58 | |
59 event_router->OnDiskEvent(event, &disk); | |
60 | |
61 // Next we repeat but with the policy not active this time. | |
62 browser()->profile()->GetPrefs()->SetBoolean(prefs::kExternalStorageDisabled, | |
63 false); | |
64 | |
65 EXPECT_CALL(*disk_mount_manager_mock_, | |
66 MountPath("fake_path", "", "", chromeos::MOUNT_TYPE_DEVICE)) | |
67 .Times(1); | |
68 | |
69 event_router->OnDiskEvent(event, &disk); | |
70 } | |
71 | |
72 } // namespace file_manager | |
OLD | NEW |