| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/bind_helpers.h" | 6 #include "base/bind_helpers.h" |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/files/scoped_temp_dir.h" | 8 #include "base/files/scoped_temp_dir.h" |
| 9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 26 matching lines...) Expand all Loading... |
| 37 #endif | 37 #endif |
| 38 | 38 |
| 39 const char kTestGalleries[] = "testGalleries(%d)"; | 39 const char kTestGalleries[] = "testGalleries(%d)"; |
| 40 | 40 |
| 41 } // namespace | 41 } // namespace |
| 42 | 42 |
| 43 // This function is to ensure at least one (fake) media gallery exists for | 43 // This function is to ensure at least one (fake) media gallery exists for |
| 44 // testing platforms with no default media galleries, such as CHROMEOS. | 44 // testing platforms with no default media galleries, such as CHROMEOS. |
| 45 void MakeFakeMediaGalleryForTest(Profile* profile, const base::FilePath& path) { | 45 void MakeFakeMediaGalleryForTest(Profile* profile, const base::FilePath& path) { |
| 46 base::RunLoop runloop; | 46 base::RunLoop runloop; |
| 47 chrome::StorageMonitor::GetInstance()->EnsureInitialized( | 47 StorageMonitor::GetInstance()->EnsureInitialized(runloop.QuitClosure()); |
| 48 runloop.QuitClosure()); | |
| 49 runloop.Run(); | 48 runloop.Run(); |
| 50 | 49 |
| 51 chrome::MediaGalleriesPreferences* preferences = | 50 MediaGalleriesPreferences* preferences = |
| 52 g_browser_process->media_file_system_registry()->GetPreferences(profile); | 51 g_browser_process->media_file_system_registry()->GetPreferences(profile); |
| 53 | 52 |
| 54 chrome::MediaGalleryPrefInfo gallery_info; | 53 MediaGalleryPrefInfo gallery_info; |
| 55 ASSERT_FALSE(preferences->LookUpGalleryByPath(path, &gallery_info)); | 54 ASSERT_FALSE(preferences->LookUpGalleryByPath(path, &gallery_info)); |
| 56 preferences->AddGallery(gallery_info.device_id, | 55 preferences->AddGallery(gallery_info.device_id, |
| 57 gallery_info.path, | 56 gallery_info.path, |
| 58 false /* user_added */, | 57 false /* user_added */, |
| 59 gallery_info.volume_label, | 58 gallery_info.volume_label, |
| 60 gallery_info.vendor_name, | 59 gallery_info.vendor_name, |
| 61 gallery_info.model_name, | 60 gallery_info.model_name, |
| 62 gallery_info.total_size_in_bytes, | 61 gallery_info.total_size_in_bytes, |
| 63 gallery_info.last_attach_time); | 62 gallery_info.last_attach_time); |
| 64 | 63 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 75 extensions::ExtensionSystem::Get(browser()->profile())-> | 74 extensions::ExtensionSystem::Get(browser()->profile())-> |
| 76 process_manager()->GetBackgroundHostForExtension(extension->id()); | 75 process_manager()->GetBackgroundHostForExtension(extension->id()); |
| 77 ASSERT_TRUE(host); | 76 ASSERT_TRUE(host); |
| 78 | 77 |
| 79 ResultCatcher catcher; | 78 ResultCatcher catcher; |
| 80 host->render_view_host()->ExecuteJavascriptInWebFrame(string16(), command); | 79 host->render_view_host()->ExecuteJavascriptInWebFrame(string16(), command); |
| 81 EXPECT_TRUE(catcher.GetNextResult()) << message_; | 80 EXPECT_TRUE(catcher.GetNextResult()) << message_; |
| 82 } | 81 } |
| 83 | 82 |
| 84 void AttachFakeDevice() { | 83 void AttachFakeDevice() { |
| 85 device_id_ = chrome::StorageInfo::MakeDeviceId( | 84 device_id_ = StorageInfo::MakeDeviceId( |
| 86 chrome::StorageInfo::REMOVABLE_MASS_STORAGE_WITH_DCIM, kDeviceId); | 85 StorageInfo::REMOVABLE_MASS_STORAGE_WITH_DCIM, kDeviceId); |
| 87 | 86 |
| 88 chrome::StorageMonitor::GetInstance()->receiver()->ProcessAttach( | 87 StorageMonitor::GetInstance()->receiver()->ProcessAttach( |
| 89 chrome::StorageInfo(device_id_, string16(), kDevicePath, | 88 StorageInfo(device_id_, string16(), kDevicePath, |
| 90 ASCIIToUTF16(kDeviceName), | 89 ASCIIToUTF16(kDeviceName), string16(), string16(), 0)); |
| 91 string16(), string16(), 0)); | |
| 92 content::RunAllPendingInMessageLoop(); | 90 content::RunAllPendingInMessageLoop(); |
| 93 } | 91 } |
| 94 | 92 |
| 95 void DetachFakeDevice() { | 93 void DetachFakeDevice() { |
| 96 chrome::StorageMonitor::GetInstance()->receiver()->ProcessDetach( | 94 StorageMonitor::GetInstance()->receiver()->ProcessDetach(device_id_); |
| 97 device_id_); | |
| 98 content::RunAllPendingInMessageLoop(); | 95 content::RunAllPendingInMessageLoop(); |
| 99 } | 96 } |
| 100 | 97 |
| 101 private: | 98 private: |
| 102 std::string device_id_; | 99 std::string device_id_; |
| 103 }; | 100 }; |
| 104 | 101 |
| 105 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, | 102 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
| 106 MediaGalleriesNoAccess) { | 103 MediaGalleriesNoAccess) { |
| 107 chrome::EnsureMediaDirectoriesExists media_directories; | 104 EnsureMediaDirectoriesExists media_directories; |
| 108 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_access")) | 105 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_access")) |
| 109 << message_; | 106 << message_; |
| 110 RunSecondTestPhase(base::UTF8ToUTF16(base::StringPrintf( | 107 RunSecondTestPhase(base::UTF8ToUTF16(base::StringPrintf( |
| 111 kTestGalleries, media_directories.num_galleries()))); | 108 kTestGalleries, media_directories.num_galleries()))); |
| 112 } | 109 } |
| 113 | 110 |
| 114 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, NoGalleriesRead) { | 111 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, NoGalleriesRead) { |
| 115 chrome::EnsureMediaDirectoriesExists media_directories; | 112 EnsureMediaDirectoriesExists media_directories; |
| 116 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_galleries")) | 113 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/no_galleries")) |
| 117 << message_; | 114 << message_; |
| 118 } | 115 } |
| 119 | 116 |
| 120 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, | 117 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
| 121 NoGalleriesCopyTo) { | 118 NoGalleriesCopyTo) { |
| 122 chrome::EnsureMediaDirectoriesExists media_directories; | 119 EnsureMediaDirectoriesExists media_directories; |
| 123 ASSERT_TRUE(RunPlatformAppTest( | 120 ASSERT_TRUE(RunPlatformAppTest( |
| 124 "api_test/media_galleries/no_galleries_copy_to")) << message_; | 121 "api_test/media_galleries/no_galleries_copy_to")) << message_; |
| 125 } | 122 } |
| 126 | 123 |
| 127 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, | 124 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
| 128 MediaGalleriesRead) { | 125 MediaGalleriesRead) { |
| 129 chrome::EnsureMediaDirectoriesExists media_directories; | 126 EnsureMediaDirectoriesExists media_directories; |
| 130 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/read_access")) | 127 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/read_access")) |
| 131 << message_; | 128 << message_; |
| 132 RunSecondTestPhase(base::UTF8ToUTF16(base::StringPrintf( | 129 RunSecondTestPhase(base::UTF8ToUTF16(base::StringPrintf( |
| 133 kTestGalleries, media_directories.num_galleries()))); | 130 kTestGalleries, media_directories.num_galleries()))); |
| 134 } | 131 } |
| 135 | 132 |
| 136 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, | 133 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
| 137 MediaGalleriesCopyTo) { | 134 MediaGalleriesCopyTo) { |
| 138 chrome::EnsureMediaDirectoriesExists media_directories; | 135 EnsureMediaDirectoriesExists media_directories; |
| 139 base::ScopedTempDir temp_dir; | 136 base::ScopedTempDir temp_dir; |
| 140 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 137 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 141 MakeFakeMediaGalleryForTest(browser()->profile(), temp_dir.path()); | 138 MakeFakeMediaGalleryForTest(browser()->profile(), temp_dir.path()); |
| 142 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/copy_to_access")) | 139 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/copy_to_access")) |
| 143 << message_; | 140 << message_; |
| 144 } | 141 } |
| 145 | 142 |
| 146 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, | 143 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
| 147 MediaGalleriesCopyToNoAccess) { | 144 MediaGalleriesCopyToNoAccess) { |
| 148 chrome::EnsureMediaDirectoriesExists media_directories; | 145 EnsureMediaDirectoriesExists media_directories; |
| 149 base::ScopedTempDir temp_dir; | 146 base::ScopedTempDir temp_dir; |
| 150 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 147 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 151 MakeFakeMediaGalleryForTest(browser()->profile(), temp_dir.path()); | 148 MakeFakeMediaGalleryForTest(browser()->profile(), temp_dir.path()); |
| 152 ASSERT_TRUE(RunPlatformAppTest( | 149 ASSERT_TRUE(RunPlatformAppTest( |
| 153 "api_test/media_galleries/copy_to_access/no_access")) | 150 "api_test/media_galleries/copy_to_access/no_access")) |
| 154 << message_; | 151 << message_; |
| 155 } | 152 } |
| 156 | 153 |
| 157 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, | 154 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
| 158 MediaGalleriesAccessAttached) { | 155 MediaGalleriesAccessAttached) { |
| 159 chrome::EnsureMediaDirectoriesExists media_directories; | 156 EnsureMediaDirectoriesExists media_directories; |
| 160 | 157 |
| 161 AttachFakeDevice(); | 158 AttachFakeDevice(); |
| 162 | 159 |
| 163 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/access_attached")) | 160 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/access_attached")) |
| 164 << message_; | 161 << message_; |
| 165 | 162 |
| 166 RunSecondTestPhase(ASCIIToUTF16(base::StringPrintf( | 163 RunSecondTestPhase(ASCIIToUTF16(base::StringPrintf( |
| 167 "testGalleries(%d, \"%s\")", | 164 "testGalleries(%d, \"%s\")", |
| 168 media_directories.num_galleries() + 1, kDeviceName))); | 165 media_directories.num_galleries() + 1, kDeviceName))); |
| 169 | 166 |
| 170 DetachFakeDevice(); | 167 DetachFakeDevice(); |
| 171 } | 168 } |
| 172 | 169 |
| 173 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, | 170 IN_PROC_BROWSER_TEST_F(MediaGalleriesPlatformAppBrowserTest, |
| 174 GetFilesystemMetadata) { | 171 GetFilesystemMetadata) { |
| 175 chrome::EnsureMediaDirectoriesExists media_directories; | 172 EnsureMediaDirectoriesExists media_directories; |
| 176 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/metadata")) | 173 ASSERT_TRUE(RunPlatformAppTest("api_test/media_galleries/metadata")) |
| 177 << message_; | 174 << message_; |
| 178 } | 175 } |
| OLD | NEW |