Index: chrome/browser/extensions/settings/settings_frontend_unittest.cc |
diff --git a/chrome/browser/extensions/settings/settings_frontend_unittest.cc b/chrome/browser/extensions/settings/settings_frontend_unittest.cc |
index e153ac3441bcd025fb5f0cf13eb008e1e79f1471..e77f2529308f28301c81d5a571b42311e69eb88b 100644 |
--- a/chrome/browser/extensions/settings/settings_frontend_unittest.cc |
+++ b/chrome/browser/extensions/settings/settings_frontend_unittest.cc |
@@ -9,11 +9,13 @@ |
#include "base/memory/scoped_ptr.h" |
#include "base/message_loop.h" |
#include "base/scoped_temp_dir.h" |
+#include "base/string_number_conversions.h" |
#include "base/stringprintf.h" |
#include "chrome/browser/extensions/settings/settings_frontend.h" |
#include "chrome/browser/extensions/settings/settings_namespace.h" |
#include "chrome/browser/extensions/settings/settings_storage.h" |
#include "chrome/browser/extensions/settings/settings_test_util.h" |
+#include "chrome/common/extensions/api/extension_api.h" |
#include "chrome/common/chrome_notification_types.h" |
#include "content/test/test_browser_thread.h" |
@@ -86,6 +88,8 @@ class ExtensionSettingsFrontendTest : public testing::Test { |
storage_factory_->Reset(new SettingsLeveldbStorage::Factory()); |
frontend_.reset( |
SettingsFrontend::Create(storage_factory_.get(), profile_.get())); |
+ // frontend_ needs a message loop to initialise. |
+ MessageLoop::current()->RunAllPending(); |
} |
ScopedTempDir temp_dir_; |
@@ -305,4 +309,44 @@ TEST_F(ExtensionSettingsFrontendTest, |
MessageLoop::current()->RunAllPending(); |
} |
+// Returns an int given as a string in |dict| at |path|, or -1 if there is not |
+// int located there. |
+static int GetInteger(const DictionaryValue& dict, const std::string& path) { |
+ int integer = -1; |
+ { |
+ std::string integer_as_string; |
+ dict.GetString(path, &integer_as_string); |
+ base::StringToInt(integer_as_string, &integer); |
+ } |
+ return integer; |
+} |
+ |
+TEST_F(ExtensionSettingsFrontendTest, QuotaLimitsMatchJson) { |
+ const DictionaryValue* storage_api = |
+ ExtensionAPI::GetInstance()->GetSchema("storage"); |
+ CHECK(storage_api); |
+ |
+ EXPECT_EQ( |
+ (int) SettingsFrontend::kSyncQuota.quota_bytes, |
+ GetInteger(*storage_api, |
+ "properties.sync.properties.QUOTA_BYTES.value")); |
+ EXPECT_EQ( |
+ (int) SettingsFrontend::kSyncQuota.quota_bytes_per_item, |
+ GetInteger(*storage_api, |
+ "properties.sync.properties.QUOTA_BYTES_PER_ITEM.value")); |
+ EXPECT_EQ( |
+ (int) SettingsFrontend::kSyncQuota.max_items, |
+ GetInteger(*storage_api, |
+ "properties.sync.properties.MAX_ITEMS.value")); |
+ |
+ EXPECT_EQ( |
+ (int) SettingsFrontend::kLocalQuota.quota_bytes, |
+ GetInteger(*storage_api, |
+ "properties.local.properties.QUOTA_BYTES.value")); |
+ EXPECT_FALSE(storage_api->HasKey( |
+ "properties.local.properties.QUOTA_BYTES_PER_ITEM.value")); |
+ EXPECT_FALSE(storage_api->HasKey( |
+ "properties.local.properties.MAX_ITEMS.value")); |
+} |
+ |
} // namespace extensions |