Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(531)

Side by Side Diff: chrome/browser/media_gallery/media_galleries_preferences_unittest.cc

Issue 11027051: MediaFileSystemRegistry unit tests. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 // MediaGalleriesPreferences unit tests. 5 // MediaGalleriesPreferences unit tests.
6 6
7 #include "chrome/browser/media_gallery/media_galleries_preferences.h" 7 #include "chrome/browser/media_gallery/media_galleries_preferences.h"
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/message_loop.h" 13 #include "base/message_loop.h"
14 #include "base/utf_string_conversions.h" 14 #include "base/utf_string_conversions.h"
15 #include "base/values.h" 15 #include "base/values.h"
16 #include "chrome/browser/extensions/extension_service.h"
17 #include "chrome/browser/extensions/extension_system.h" 16 #include "chrome/browser/extensions/extension_system.h"
18 #include "chrome/browser/extensions/test_extension_system.h" 17 #include "chrome/browser/extensions/test_extension_system.h"
19 #include "chrome/browser/media_gallery/media_file_system_registry.h" 18 #include "chrome/browser/media_gallery/media_file_system_registry.h"
19 #include "chrome/browser/media_gallery/media_galleries_test_util.h"
20 #include "chrome/browser/system_monitor/media_storage_util.h" 20 #include "chrome/browser/system_monitor/media_storage_util.h"
21 #include "chrome/common/extensions/extension.h" 21 #include "chrome/common/extensions/extension.h"
22 #include "chrome/common/extensions/extension_manifest_constants.h"
23 #include "chrome/test/base/testing_profile.h" 22 #include "chrome/test/base/testing_profile.h"
24 #include "content/public/test/test_browser_thread.h" 23 #include "content/public/test/test_browser_thread.h"
25 #include "sync/api/string_ordinal.h" 24 #include "sync/api/string_ordinal.h"
26 #include "testing/gtest/include/gtest/gtest.h" 25 #include "testing/gtest/include/gtest/gtest.h"
27 26
28 namespace chrome { 27 namespace chrome {
29 28
30 namespace { 29 namespace {
31 30
32 class MediaStorageUtilTest : public MediaStorageUtil { 31 class MediaStorageUtilTest : public MediaStorageUtil {
(...skipping 19 matching lines...) Expand all
52 51
53 class MediaGalleriesPreferencesTest : public testing::Test { 52 class MediaGalleriesPreferencesTest : public testing::Test {
54 public: 53 public:
55 typedef std::map<std::string /*device id*/, MediaGalleryPrefIdSet> 54 typedef std::map<std::string /*device id*/, MediaGalleryPrefIdSet>
56 DeviceIdPrefIdsMap; 55 DeviceIdPrefIdsMap;
57 56
58 MediaGalleriesPreferencesTest() 57 MediaGalleriesPreferencesTest()
59 : ui_thread_(content::BrowserThread::UI, &loop_), 58 : ui_thread_(content::BrowserThread::UI, &loop_),
60 file_thread_(content::BrowserThread::FILE, &loop_), 59 file_thread_(content::BrowserThread::FILE, &loop_),
61 profile_(new TestingProfile()), 60 profile_(new TestingProfile()),
62 extension_service_(NULL),
63 default_galleries_count_(0) { 61 default_galleries_count_(0) {
64 MediaStorageUtilTest::SetTestingMode(); 62 MediaStorageUtilTest::SetTestingMode();
65 } 63 }
66 64
67 virtual ~MediaGalleriesPreferencesTest() { 65 virtual ~MediaGalleriesPreferencesTest() {
68 // TestExtensionSystem uses DeleteSoon, so we need to delete the profile 66 // TestExtensionSystem uses DeleteSoon, so we need to delete the profile
69 // and then run the message queue to clean up. 67 // and then run the message queue to clean up.
70 profile_.reset(); 68 profile_.reset();
71 MessageLoop::current()->RunAllPending(); 69 MessageLoop::current()->RunAllPending();
72 } 70 }
73 71
74 virtual void SetUp() OVERRIDE { 72 virtual void SetUp() OVERRIDE {
75 extensions_dir_ = profile_->GetPath().AppendASCII("Extensions");
76 ASSERT_TRUE(file_util::CreateDirectory(extensions_dir_));
77
78 extensions::TestExtensionSystem* extension_system( 73 extensions::TestExtensionSystem* extension_system(
79 static_cast<extensions::TestExtensionSystem*>( 74 static_cast<extensions::TestExtensionSystem*>(
80 extensions::ExtensionSystem::Get(profile_.get()))); 75 extensions::ExtensionSystem::Get(profile_.get())));
81 extension_service_ = extension_system->CreateExtensionService( 76 extension_system->CreateExtensionService(
82 CommandLine::ForCurrentProcess(), extensions_dir_, false); 77 CommandLine::ForCurrentProcess(), FilePath(), false);
83 78
84 gallery_prefs_.reset(new MediaGalleriesPreferences(profile_.get())); 79 gallery_prefs_.reset(new MediaGalleriesPreferences(profile_.get()));
85 80
86 // Load the default galleries into the expectations. 81 // Load the default galleries into the expectations.
87 const MediaGalleriesPrefInfoMap& known_galleries = 82 const MediaGalleriesPrefInfoMap& known_galleries =
88 gallery_prefs_->known_galleries(); 83 gallery_prefs_->known_galleries();
89 if (known_galleries.size()) { 84 if (known_galleries.size()) {
90 ASSERT_EQ(3U, known_galleries.size()); 85 ASSERT_EQ(3U, known_galleries.size());
91 default_galleries_count_ = 3; 86 default_galleries_count_ = 3;
92 MediaGalleriesPrefInfoMap::const_iterator it; 87 MediaGalleriesPrefInfoMap::const_iterator it;
93 for (it = known_galleries.begin(); it != known_galleries.end(); ++it) { 88 for (it = known_galleries.begin(); it != known_galleries.end(); ++it) {
94 expected_galleries_[it->first] = it->second; 89 expected_galleries_[it->first] = it->second;
95 if (it->second.type == MediaGalleryPrefInfo::kAutoDetected) 90 if (it->second.type == MediaGalleryPrefInfo::kAutoDetected)
96 expected_galleries_for_all.insert(it->first); 91 expected_galleries_for_all.insert(it->first);
97 } 92 }
98 } 93 }
99 94
100 std::vector<std::string> all_permissions; 95 std::vector<std::string> all_permissions;
101 all_permissions.push_back("allAutoDetected"); 96 all_permissions.push_back("allAutoDetected");
102 all_permissions.push_back("read"); 97 all_permissions.push_back("read");
103 std::vector<std::string> read_permissions; 98 std::vector<std::string> read_permissions;
104 read_permissions.push_back("read"); 99 read_permissions.push_back("read");
105 100
106 all_permission_extension = AddApp("all", all_permissions); 101 all_permission_extension =
107 regular_permission_extension = AddApp("regular", read_permissions); 102 AddMediaGalleriesApp("all", all_permissions, profile_.get());
108 no_permissions_extension = AddApp("no", read_permissions); 103 regular_permission_extension =
104 AddMediaGalleriesApp("regular", read_permissions, profile_.get());
105 no_permissions_extension =
106 AddMediaGalleriesApp("no", read_permissions, profile_.get());
109 } 107 }
110 108
111 virtual void TearDown() OVERRIDE { 109 virtual void TearDown() OVERRIDE {
112 Verify(); 110 Verify();
113 } 111 }
114 112
115 void Verify() { 113 void Verify() {
116 const MediaGalleriesPrefInfoMap& known_galleries = 114 const MediaGalleriesPrefInfoMap& known_galleries =
117 gallery_prefs_->known_galleries(); 115 gallery_prefs_->known_galleries();
118 EXPECT_EQ(expected_galleries_.size(), known_galleries.size()); 116 EXPECT_EQ(expected_galleries_.size(), known_galleries.size());
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 scoped_refptr<extensions::Extension> no_permissions_extension; 182 scoped_refptr<extensions::Extension> no_permissions_extension;
185 183
186 std::set<MediaGalleryPrefId> expected_galleries_for_all; 184 std::set<MediaGalleryPrefId> expected_galleries_for_all;
187 std::set<MediaGalleryPrefId> expected_galleries_for_regular; 185 std::set<MediaGalleryPrefId> expected_galleries_for_regular;
188 186
189 DeviceIdPrefIdsMap expected_device_map; 187 DeviceIdPrefIdsMap expected_device_map;
190 188
191 MediaGalleriesPrefInfoMap expected_galleries_; 189 MediaGalleriesPrefInfoMap expected_galleries_;
192 190
193 private: 191 private:
194 scoped_refptr<extensions::Extension> AddApp(
195 std::string name,
196 std::vector<std::string> media_galleries_permissions) {
197 scoped_ptr<DictionaryValue> manifest(new DictionaryValue);
198 manifest->SetString(extension_manifest_keys::kName, name);
199 manifest->SetString(extension_manifest_keys::kVersion, "0.1");
200 manifest->SetInteger(extension_manifest_keys::kManifestVersion, 2);
201 ListValue* background_script_list = new ListValue;
202 background_script_list->Append(Value::CreateStringValue("background.js"));
203 manifest->Set(extension_manifest_keys::kPlatformAppBackgroundScripts,
204 background_script_list);
205
206 ListValue* permission_detail_list = new ListValue;
207 for (size_t i = 0; i < media_galleries_permissions.size(); i++)
208 permission_detail_list->Append(
209 Value::CreateStringValue(media_galleries_permissions[i]));
210 DictionaryValue* media_galleries_permission = new DictionaryValue();
211 media_galleries_permission->Set("mediaGalleries", permission_detail_list);
212 ListValue* permission_list = new ListValue;
213 permission_list->Append(media_galleries_permission);
214 manifest->Set(extension_manifest_keys::kPermissions, permission_list);
215
216 FilePath path = extensions_dir_.AppendASCII(name);
217 std::string errors;
218 scoped_refptr<extensions::Extension> extension =
219 extensions::Extension::Create(path,
220 extensions::Extension::INTERNAL,
221 *manifest.get(),
222 extensions::Extension::NO_FLAGS,
223 &errors);
224 EXPECT_TRUE(extension.get() != NULL) << errors;
225 EXPECT_TRUE(extensions::Extension::IdIsValid(extension->id()));
226 if (!extension.get() ||
227 !extensions::Extension::IdIsValid(extension->id())) {
228 return NULL;
229 }
230
231 extension_service_->extension_prefs()->OnExtensionInstalled(
232 extension, extensions::Extension::ENABLED,
233 syncer::StringOrdinal::CreateInitialOrdinal());
234
235 return extension;
236 }
237
238 // Needed for extension service & friends to work. 192 // Needed for extension service & friends to work.
239 MessageLoop loop_; 193 MessageLoop loop_;
240 content::TestBrowserThread ui_thread_; 194 content::TestBrowserThread ui_thread_;
241 content::TestBrowserThread file_thread_; 195 content::TestBrowserThread file_thread_;
242 196
243 scoped_ptr<TestingProfile> profile_; 197 scoped_ptr<TestingProfile> profile_;
244 scoped_ptr<MediaGalleriesPreferences> gallery_prefs_; 198 scoped_ptr<MediaGalleriesPreferences> gallery_prefs_;
245 FilePath extensions_dir_;
246 ExtensionService* extension_service_;
247 199
248 uint64 default_galleries_count_; 200 uint64 default_galleries_count_;
249 201
250 DISALLOW_COPY_AND_ASSIGN(MediaGalleriesPreferencesTest); 202 DISALLOW_COPY_AND_ASSIGN(MediaGalleriesPreferencesTest);
251 }; 203 };
252 204
253 FilePath MakePath(std::string dir) { 205 FilePath MakePath(std::string dir) {
254 #if defined(OS_WIN) 206 #if defined(OS_WIN)
255 return FilePath(FILE_PATH_LITERAL("C:\\")).Append(UTF8ToWide(dir)); 207 return FilePath(FILE_PATH_LITERAL("C:\\")).Append(UTF8ToWide(dir));
256 #elif defined(OS_POSIX) 208 #elif defined(OS_POSIX)
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
603 // Check that adding one of them again works as expected. 555 // Check that adding one of them again works as expected.
604 MediaGalleryPrefId id = gallery_prefs()->AddGallery( 556 MediaGalleryPrefId id = gallery_prefs()->AddGallery(
605 device_id, device_name, relative_path, true /*user*/); 557 device_id, device_name, relative_path, true /*user*/);
606 EXPECT_EQ(dev2_path2_id, id); 558 EXPECT_EQ(dev2_path2_id, id);
607 Verify(); 559 Verify();
608 } 560 }
609 561
610 } // namespace 562 } // namespace
611 563
612 } // namespace chrome 564 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698