OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/command_line.h" | 6 #include "base/command_line.h" |
7 #include "base/files/file_path.h" | 7 #include "base/files/file_path.h" |
8 #include "base/run_loop.h" | 8 #include "base/run_loop.h" |
9 #include "base/strings/string16.h" | 9 #include "base/strings/string16.h" |
10 #include "base/strings/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 extensions::Extension* extension() { | 106 extensions::Extension* extension() { |
107 return extension_.get(); | 107 return extension_.get(); |
108 } | 108 } |
109 | 109 |
110 MediaGalleriesPreferences* gallery_prefs() { | 110 MediaGalleriesPreferences* gallery_prefs() { |
111 return gallery_prefs_.get(); | 111 return gallery_prefs_.get(); |
112 } | 112 } |
113 | 113 |
114 GalleryDialogId GetDialogIdFromPrefId(MediaGalleryPrefId pref_id); | 114 GalleryDialogId GetDialogIdFromPrefId(MediaGalleryPrefId pref_id); |
115 | 115 |
116 void TestForgottenType(MediaGalleryPrefInfo::Type type); | 116 void TestForgottenType(MediaGalleryPrefInfo::Type type, |
| 117 bool forget_preserves_pref_id); |
117 | 118 |
118 protected: | 119 protected: |
119 EnsureMediaDirectoriesExists mock_gallery_locations_; | 120 EnsureMediaDirectoriesExists mock_gallery_locations_; |
120 | 121 |
121 private: | 122 private: |
122 MediaGalleriesDialog* CreateMockDialog( | 123 MediaGalleriesDialog* CreateMockDialog( |
123 MediaGalleriesDialogController* controller) { | 124 MediaGalleriesDialogController* controller) { |
124 EXPECT_FALSE(dialog_); | 125 EXPECT_FALSE(dialog_); |
125 dialog_update_count_at_destruction_ = 0; | 126 dialog_update_count_at_destruction_ = 0; |
126 dialog_ = new MockMediaGalleriesDialog(base::Bind( | 127 dialog_ = new MockMediaGalleriesDialog(base::Bind( |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
168 DISALLOW_COPY_AND_ASSIGN(MediaGalleriesPermissionControllerTest); | 169 DISALLOW_COPY_AND_ASSIGN(MediaGalleriesPermissionControllerTest); |
169 }; | 170 }; |
170 | 171 |
171 GalleryDialogId | 172 GalleryDialogId |
172 MediaGalleriesPermissionControllerTest::GetDialogIdFromPrefId( | 173 MediaGalleriesPermissionControllerTest::GetDialogIdFromPrefId( |
173 MediaGalleryPrefId pref_id) { | 174 MediaGalleryPrefId pref_id) { |
174 return controller_->GetDialogId(pref_id); | 175 return controller_->GetDialogId(pref_id); |
175 } | 176 } |
176 | 177 |
177 void MediaGalleriesPermissionControllerTest::TestForgottenType( | 178 void MediaGalleriesPermissionControllerTest::TestForgottenType( |
178 MediaGalleryPrefInfo::Type type) { | 179 MediaGalleryPrefInfo::Type type, bool forget_preserves_pref_id) { |
179 EXPECT_EQ(0U, gallery_prefs()->GalleriesForExtension(*extension()).size()); | 180 EXPECT_EQ(0U, gallery_prefs()->GalleriesForExtension(*extension()).size()); |
180 | 181 |
181 MediaGalleryPrefId forgotten1 = gallery_prefs()->AddGalleryByPath( | 182 MediaGalleryPrefId forgotten1 = gallery_prefs()->AddGalleryByPath( |
182 MakeMediaGalleriesTestingPath("forgotten1"), type); | 183 MakeMediaGalleriesTestingPath("forgotten1"), type); |
183 MediaGalleryPrefId forgotten2 = gallery_prefs()->AddGalleryByPath( | 184 MediaGalleryPrefId forgotten2 = gallery_prefs()->AddGalleryByPath( |
184 MakeMediaGalleriesTestingPath("forgotten2"), type); | 185 MakeMediaGalleriesTestingPath("forgotten2"), type); |
185 // Show dialog and accept to verify 2 entries | 186 // Show dialog and accept to verify 2 entries |
186 StartDialog(); | 187 StartDialog(); |
187 EXPECT_EQ(0U, controller()->GetSectionEntries(0).size()); | 188 EXPECT_EQ(0U, controller()->GetSectionEntries(0).size()); |
188 EXPECT_EQ(mock_gallery_locations_.num_galleries() + 2U, | 189 EXPECT_EQ(mock_gallery_locations_.num_galleries() + 2U, |
(...skipping 12 matching lines...) Expand all Loading... |
201 EXPECT_EQ(2U, gallery_prefs()->GalleriesForExtension(*extension()).size()); | 202 EXPECT_EQ(2U, gallery_prefs()->GalleriesForExtension(*extension()).size()); |
202 | 203 |
203 // Forget one and confirm to see that it's gone. | 204 // Forget one and confirm to see that it's gone. |
204 StartDialog(); | 205 StartDialog(); |
205 EXPECT_EQ(2U, controller()->GetSectionEntries(0).size()); | 206 EXPECT_EQ(2U, controller()->GetSectionEntries(0).size()); |
206 controller()->DidForgetEntry(GetDialogIdFromPrefId(forgotten1)); | 207 controller()->DidForgetEntry(GetDialogIdFromPrefId(forgotten1)); |
207 EXPECT_EQ(1U, controller()->GetSectionEntries(0).size()); | 208 EXPECT_EQ(1U, controller()->GetSectionEntries(0).size()); |
208 controller()->DialogFinished(true); | 209 controller()->DialogFinished(true); |
209 EXPECT_EQ(1U, gallery_prefs()->GalleriesForExtension(*extension()).size()); | 210 EXPECT_EQ(1U, gallery_prefs()->GalleriesForExtension(*extension()).size()); |
210 | 211 |
| 212 // Add back and test whether the same pref id is preserved. |
| 213 StartDialog(); |
| 214 controller()->FileSelected( |
| 215 MakeMediaGalleriesTestingPath("forgotten1"), 0, NULL); |
| 216 controller()->DialogFinished(true); |
| 217 EXPECT_EQ(2U, gallery_prefs()->GalleriesForExtension(*extension()).size()); |
| 218 MediaGalleryPrefInfo retrieved_info; |
| 219 EXPECT_TRUE(gallery_prefs()->LookUpGalleryByPath( |
| 220 MakeMediaGalleriesTestingPath("forgotten1"), &retrieved_info)); |
| 221 EXPECT_EQ(forget_preserves_pref_id, retrieved_info.pref_id == forgotten1); |
| 222 |
211 // Add a new one and forget it & see that it's gone. | 223 // Add a new one and forget it & see that it's gone. |
212 MediaGalleryPrefId forgotten3 = gallery_prefs()->AddGalleryByPath( | 224 MediaGalleryPrefId forgotten3 = gallery_prefs()->AddGalleryByPath( |
213 MakeMediaGalleriesTestingPath("forgotten3"), type); | 225 MakeMediaGalleriesTestingPath("forgotten3"), type); |
214 StartDialog(); | 226 StartDialog(); |
215 EXPECT_EQ(1U, controller()->GetSectionEntries(0).size()); | 227 EXPECT_EQ(2U, controller()->GetSectionEntries(0).size()); |
216 EXPECT_EQ(mock_gallery_locations_.num_galleries() + 1U, | 228 EXPECT_EQ(mock_gallery_locations_.num_galleries() + 1U, |
217 controller()->GetSectionEntries(1).size()); | 229 controller()->GetSectionEntries(1).size()); |
218 controller()->DidToggleEntry(GetDialogIdFromPrefId(forgotten3), true); | 230 controller()->DidToggleEntry(GetDialogIdFromPrefId(forgotten3), true); |
219 controller()->DidForgetEntry(GetDialogIdFromPrefId(forgotten3)); | 231 controller()->DidForgetEntry(GetDialogIdFromPrefId(forgotten3)); |
220 EXPECT_EQ(1U, controller()->GetSectionEntries(0).size()); | 232 EXPECT_EQ(2U, controller()->GetSectionEntries(0).size()); |
221 EXPECT_EQ(static_cast<unsigned long>(mock_gallery_locations_.num_galleries()), | 233 EXPECT_EQ(static_cast<unsigned long>(mock_gallery_locations_.num_galleries()), |
222 controller()->GetSectionEntries(1).size()); | 234 controller()->GetSectionEntries(1).size()); |
223 controller()->DialogFinished(true); | 235 controller()->DialogFinished(true); |
224 EXPECT_EQ(1U, gallery_prefs()->GalleriesForExtension(*extension()).size()); | 236 EXPECT_EQ(2U, gallery_prefs()->GalleriesForExtension(*extension()).size()); |
225 } | 237 } |
226 | 238 |
227 TEST_F(MediaGalleriesPermissionControllerTest, TestForgottenUserAdded) { | 239 TEST_F(MediaGalleriesPermissionControllerTest, TestForgottenUserAdded) { |
228 TestForgottenType(MediaGalleryPrefInfo::kUserAdded); | 240 TestForgottenType(MediaGalleryPrefInfo::kUserAdded, |
| 241 false /* forget_preserves_pref_id */); |
229 } | 242 } |
230 | 243 |
231 TEST_F(MediaGalleriesPermissionControllerTest, TestForgottenAutoDetected) { | 244 TEST_F(MediaGalleriesPermissionControllerTest, TestForgottenAutoDetected) { |
232 TestForgottenType(MediaGalleryPrefInfo::kAutoDetected); | 245 TestForgottenType(MediaGalleryPrefInfo::kAutoDetected, |
| 246 true /* forget_preserves_pref_id */); |
233 } | 247 } |
234 | 248 |
235 TEST_F(MediaGalleriesPermissionControllerTest, TestForgottenScanResult) { | 249 TEST_F(MediaGalleriesPermissionControllerTest, TestForgottenScanResult) { |
236 TestForgottenType(MediaGalleryPrefInfo::kScanResult); | 250 TestForgottenType(MediaGalleryPrefInfo::kScanResult, |
| 251 true /* forget_preserves_pref_id */); |
237 } | 252 } |
238 | 253 |
239 TEST_F(MediaGalleriesPermissionControllerTest, TestNameGeneration) { | 254 TEST_F(MediaGalleriesPermissionControllerTest, TestNameGeneration) { |
240 MediaGalleryPrefInfo gallery; | 255 MediaGalleryPrefInfo gallery; |
241 gallery.pref_id = 1; | 256 gallery.pref_id = 1; |
242 gallery.device_id = StorageInfo::MakeDeviceId( | 257 gallery.device_id = StorageInfo::MakeDeviceId( |
243 StorageInfo::FIXED_MASS_STORAGE, "/path/to/gallery"); | 258 StorageInfo::FIXED_MASS_STORAGE, "/path/to/gallery"); |
244 gallery.type = MediaGalleryPrefInfo::kAutoDetected; | 259 gallery.type = MediaGalleryPrefInfo::kAutoDetected; |
245 std::string galleryName("/path/to/gallery"); | 260 std::string galleryName("/path/to/gallery"); |
246 #if defined(OS_CHROMEOS) | 261 #if defined(OS_CHROMEOS) |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 | 298 |
284 gallery.volume_label = base::string16(); | 299 gallery.volume_label = base::string16(); |
285 EXPECT_EQ("vendor, model", GalleryName(gallery)); | 300 EXPECT_EQ("vendor, model", GalleryName(gallery)); |
286 | 301 |
287 gallery.total_size_in_bytes = 1000000; | 302 gallery.total_size_in_bytes = 1000000; |
288 EXPECT_EQ("977 KB vendor, model", GalleryName(gallery)); | 303 EXPECT_EQ("977 KB vendor, model", GalleryName(gallery)); |
289 | 304 |
290 gallery.path = base::FilePath(FILE_PATH_LITERAL("sub/path")); | 305 gallery.path = base::FilePath(FILE_PATH_LITERAL("sub/path")); |
291 EXPECT_EQ("path - 977 KB vendor, model", GalleryName(gallery)); | 306 EXPECT_EQ("path - 977 KB vendor, model", GalleryName(gallery)); |
292 } | 307 } |
OLD | NEW |