Index: chrome/browser/extensions/extension_prefs_unittest.cc |
diff --git a/chrome/browser/extensions/extension_prefs_unittest.cc b/chrome/browser/extensions/extension_prefs_unittest.cc |
index 9548234834c7baccd463d369977b5da34c4d07cd..33baa07cf04ec3aab70bafd9d0fd526233c81c9a 100644 |
--- a/chrome/browser/extensions/extension_prefs_unittest.cc |
+++ b/chrome/browser/extensions/extension_prefs_unittest.cc |
@@ -4,6 +4,7 @@ |
#include "extension_prefs_unittest.h" |
+#include "base/basictypes.h" |
#include "base/path_service.h" |
#include "base/scoped_temp_dir.h" |
#include "base/stl_util.h" |
@@ -101,6 +102,97 @@ class ExtensionPrefsLastPingDay : public ExtensionPrefsTest { |
}; |
TEST_F(ExtensionPrefsLastPingDay, LastPingDay) {} |
+namespace { |
+ |
+void AddGalleryPermission(MediaGalleryPrefId gallery, bool has_access, |
+ std::vector<MediaGalleryPermission>* vector) { |
+ MediaGalleryPermission permission; |
+ permission.pref_id = gallery; |
+ permission.has_permission = has_access; |
+ vector->push_back(permission); |
+} |
+ |
+} // namspace |
+ |
+// Test the MediaGalleries permissions functions. |
+class MediaGalleriesPermissions : public ExtensionPrefsTest { |
+ public: |
+ virtual void Initialize() { |
+ extension1_id_ = prefs_.AddExtensionAndReturnId("test1"); |
+ extension2_id_ = prefs_.AddExtensionAndReturnId("test2"); |
+ extension3_id_ = prefs_.AddExtensionAndReturnId("test3"); |
+ // Id4 isn't used to ensure that an empty permission list is ok. |
+ extension4_id_ = prefs_.AddExtensionAndReturnId("test4"); |
+ Verify(); |
+ |
+ prefs()->SetMediaGalleryPermission(extension1_id_, 1, false); |
+ AddGalleryPermission(1, false, &extension1_expectation_); |
+ Verify(); |
+ |
+ prefs()->SetMediaGalleryPermission(extension1_id_, 2, true); |
+ AddGalleryPermission(2, true, &extension1_expectation_); |
+ Verify(); |
+ |
+ prefs()->SetMediaGalleryPermission(extension1_id_, 2, false); |
+ extension1_expectation_[1].has_permission = false; |
+ Verify(); |
+ |
+ prefs()->SetMediaGalleryPermission(extension2_id_, 1, true); |
+ prefs()->SetMediaGalleryPermission(extension2_id_, 3, true); |
+ prefs()->SetMediaGalleryPermission(extension2_id_, 4, true); |
+ AddGalleryPermission(1, true, &extension2_expectation_); |
+ AddGalleryPermission(3, true, &extension2_expectation_); |
+ AddGalleryPermission(4, true, &extension2_expectation_); |
+ Verify(); |
+ |
+ prefs()->SetMediaGalleryPermission(extension3_id_, 3, true); |
+ AddGalleryPermission(3, true, &extension3_expectation_); |
+ Verify(); |
+ |
+ prefs()->RemoveMediaGalleryPermissions(3); |
+ extension2_expectation_.erase(extension2_expectation_.begin() + 1); |
+ extension3_expectation_.erase(extension3_expectation_.begin()); |
+ Verify(); |
+ } |
+ |
+ virtual void Verify() { |
+ struct TestData { |
+ std::string* id; |
+ std::vector<MediaGalleryPermission>* expectation; |
+ }; |
+ |
+ const TestData test_data[] = {{&extension1_id_, &extension1_expectation_}, |
+ {&extension2_id_, &extension2_expectation_}, |
+ {&extension3_id_, &extension3_expectation_}, |
+ {&extension4_id_, &extension4_expectation_}}; |
+ for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); i++) { |
+ std::vector<MediaGalleryPermission> actual = |
+ prefs()->GetMediaGalleryPermissions(*test_data[i].id); |
+ EXPECT_EQ(test_data[i].expectation->size(), actual.size()); |
+ for (size_t permission_entry = 0; |
+ permission_entry < test_data[i].expectation->size() && |
+ permission_entry < actual.size(); |
+ permission_entry++) { |
+ EXPECT_EQ(test_data[i].expectation->at(permission_entry).pref_id, |
+ actual[permission_entry].pref_id); |
+ EXPECT_EQ(test_data[i].expectation->at(permission_entry).has_permission, |
+ actual[permission_entry].has_permission); |
+ } |
+ } |
+ } |
+ |
+ private: |
+ std::string extension1_id_; |
+ std::string extension2_id_; |
+ std::string extension3_id_; |
+ std::string extension4_id_; |
+ |
+ std::vector<MediaGalleryPermission> extension1_expectation_; |
+ std::vector<MediaGalleryPermission> extension2_expectation_; |
+ std::vector<MediaGalleryPermission> extension3_expectation_; |
+ std::vector<MediaGalleryPermission> extension4_expectation_; |
+}; |
+TEST_F(MediaGalleriesPermissions, MediaGalleries) {} |
// Tests the GetToolbarOrder/SetToolbarOrder functions. |
class ExtensionPrefsToolbarOrder : public ExtensionPrefsTest { |