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

Unified Diff: chrome/common/extensions/extension_message_bundle_unittest.cc

Issue 293037: Implementing better fallback algorithm.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 2 months 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 side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/extension_message_bundle_unittest.cc
===================================================================
--- chrome/common/extensions/extension_message_bundle_unittest.cc (revision 29587)
+++ chrome/common/extensions/extension_message_bundle_unittest.cc (working copy)
@@ -5,7 +5,9 @@
#include "chrome/common/extensions/extension_message_bundle.h"
#include <string>
+#include <vector>
+#include "base/linked_ptr.h"
#include "base/scoped_ptr.h"
#include "base/string_util.h"
#include "base/values.h"
@@ -49,11 +51,13 @@
SetDictionary(name, dict, message_tree);
}
-void CreateGoodDictionary(DictionaryValue* dict) {
- dict->Clear();
+// Caller owns the memory.
+DictionaryValue* CreateGoodDictionary() {
+ DictionaryValue* dict = new DictionaryValue;
CreateMessageTree(L"n1", "message1 $a$ $b$", true, dict);
CreateMessageTree(L"n2", "message2 $c$", true, dict);
CreateMessageTree(L"n3", "message3", false, dict);
+ return dict;
}
enum BadDictionary {
@@ -67,9 +71,9 @@
MESSAGE_PLACEHOLDER_DOESNT_MATCH,
};
-void CreateBadDictionary(DictionaryValue* dict,
- enum BadDictionary what_is_bad) {
- CreateGoodDictionary(dict);
+// Caller owns the memory.
+DictionaryValue* CreateBadDictionary(enum BadDictionary what_is_bad) {
+ DictionaryValue* dict = CreateGoodDictionary();
// Now remove/break things.
switch (what_is_bad) {
case INVALID_NAME:
@@ -104,27 +108,27 @@
CreateContentTree(L"x", "X", value);
break;
}
+
+ return dict;
}
TEST(ExtensionMessageBundle, InitEmptyDictionaries) {
- DictionaryValue default_dict;
- DictionaryValue app_dict;
+ std::vector<linked_ptr<DictionaryValue> > catalogs;
std::string error;
scoped_ptr<ExtensionMessageBundle> handler(
- ExtensionMessageBundle::Create(default_dict, app_dict, &error));
+ ExtensionMessageBundle::Create(catalogs, &error));
EXPECT_TRUE(handler.get() != NULL);
EXPECT_EQ(0U, handler->size());
}
-TEST(ExtensionMessageBundle, InitGoodDefaultDictEmptyAppDict) {
- DictionaryValue default_dict;
- DictionaryValue app_dict;
+TEST(ExtensionMessageBundle, InitGoodDefaultDict) {
+ std::vector<linked_ptr<DictionaryValue> > catalogs;
+ catalogs.push_back(linked_ptr<DictionaryValue>(CreateGoodDictionary()));
+
std::string error;
-
- CreateGoodDictionary(&default_dict);
scoped_ptr<ExtensionMessageBundle> handler(
- ExtensionMessageBundle::Create(default_dict, app_dict, &error));
+ ExtensionMessageBundle::Create(catalogs, &error));
EXPECT_TRUE(handler.get() != NULL);
EXPECT_EQ(3U, handler->size());
@@ -135,22 +139,22 @@
}
TEST(ExtensionMessageBundle, InitAppDictConsultedFirst) {
- DictionaryValue default_dict;
- DictionaryValue app_dict;
- std::string error;
+ std::vector<linked_ptr<DictionaryValue> > catalogs;
+ catalogs.push_back(linked_ptr<DictionaryValue>(CreateGoodDictionary()));
+ catalogs.push_back(linked_ptr<DictionaryValue>(CreateGoodDictionary()));
- CreateGoodDictionary(&default_dict);
- CreateGoodDictionary(&app_dict);
+ DictionaryValue* app_dict = catalogs[0].get();
// Flip placeholders in message of n1 tree.
- app_dict.SetString(L"n1.message", "message1 $b$ $a$");
+ app_dict->SetString(L"n1.message", "message1 $b$ $a$");
// Remove one message from app dict.
- app_dict.Remove(L"n2", NULL);
+ app_dict->Remove(L"n2", NULL);
// Replace n3 with N3.
- app_dict.Remove(L"n3", NULL);
- CreateMessageTree(L"N3", "message3_app_dict", false, &app_dict);
+ app_dict->Remove(L"n3", NULL);
+ CreateMessageTree(L"N3", "message3_app_dict", false, app_dict);
+ std::string error;
scoped_ptr<ExtensionMessageBundle> handler(
- ExtensionMessageBundle::Create(default_dict, app_dict, &error));
+ ExtensionMessageBundle::Create(catalogs, &error));
EXPECT_TRUE(handler.get() != NULL);
EXPECT_EQ(3U, handler->size());
@@ -161,50 +165,51 @@
}
TEST(ExtensionMessageBundle, InitBadAppDict) {
- DictionaryValue default_dict;
- DictionaryValue app_dict;
+ std::vector<linked_ptr<DictionaryValue> > catalogs;
+ catalogs.push_back(
+ linked_ptr<DictionaryValue>(CreateBadDictionary(INVALID_NAME)));
+ catalogs.push_back(linked_ptr<DictionaryValue>(CreateGoodDictionary()));
+
std::string error;
-
- CreateBadDictionary(&app_dict, INVALID_NAME);
scoped_ptr<ExtensionMessageBundle> handler(
- ExtensionMessageBundle::Create(default_dict, app_dict, &error));
+ ExtensionMessageBundle::Create(catalogs, &error));
EXPECT_TRUE(handler.get() == NULL);
EXPECT_EQ("Name of a key \"n 5\" is invalid. Only ASCII [a-z], "
"[A-Z], [0-9] and \"_\" are allowed.", error);
- CreateBadDictionary(&app_dict, NAME_NOT_A_TREE);
- handler.reset(ExtensionMessageBundle::Create(default_dict, app_dict, &error));
+ catalogs[0].reset(CreateBadDictionary(NAME_NOT_A_TREE));
+ handler.reset(ExtensionMessageBundle::Create(catalogs, &error));
EXPECT_TRUE(handler.get() == NULL);
EXPECT_EQ("Not a valid tree for key n4.", error);
- CreateBadDictionary(&app_dict, EMPTY_NAME_TREE);
- handler.reset(ExtensionMessageBundle::Create(default_dict, app_dict, &error));
+ catalogs[0].reset(CreateBadDictionary(EMPTY_NAME_TREE));
+ handler.reset(ExtensionMessageBundle::Create(catalogs, &error));
EXPECT_TRUE(handler.get() == NULL);
EXPECT_EQ("There is no \"message\" element for key n4.", error);
- CreateBadDictionary(&app_dict, MISSING_MESSAGE);
- handler.reset(ExtensionMessageBundle::Create(default_dict, app_dict, &error));
+ catalogs[0].reset(CreateBadDictionary(MISSING_MESSAGE));
+ handler.reset(ExtensionMessageBundle::Create(catalogs, &error));
EXPECT_TRUE(handler.get() == NULL);
EXPECT_EQ("There is no \"message\" element for key n1.", error);
- CreateBadDictionary(&app_dict, PLACEHOLDER_NOT_A_TREE);
- handler.reset(ExtensionMessageBundle::Create(default_dict, app_dict, &error));
+ catalogs[0].reset(CreateBadDictionary(PLACEHOLDER_NOT_A_TREE));
+ handler.reset(ExtensionMessageBundle::Create(catalogs, &error));
EXPECT_TRUE(handler.get() == NULL);
EXPECT_EQ("Not a valid \"placeholders\" element for key n1.", error);
- CreateBadDictionary(&app_dict, EMPTY_PLACEHOLDER_TREE);
- handler.reset(ExtensionMessageBundle::Create(default_dict, app_dict, &error));
+ catalogs[0].reset(CreateBadDictionary(EMPTY_PLACEHOLDER_TREE));
+ handler.reset(ExtensionMessageBundle::Create(catalogs, &error));
EXPECT_TRUE(handler.get() == NULL);
EXPECT_EQ("Variable $a$ used but not defined.", error);
- CreateBadDictionary(&app_dict, CONTENT_MISSING);
- handler.reset(ExtensionMessageBundle::Create(default_dict, app_dict, &error));
+ catalogs[0].reset(CreateBadDictionary(CONTENT_MISSING));
+ handler.reset(ExtensionMessageBundle::Create(catalogs, &error));
EXPECT_TRUE(handler.get() == NULL);
EXPECT_EQ("Invalid \"content\" element for key n1.", error);
- CreateBadDictionary(&app_dict, MESSAGE_PLACEHOLDER_DOESNT_MATCH);
- handler.reset(ExtensionMessageBundle::Create(default_dict, app_dict, &error));
+ catalogs[0].reset(CreateBadDictionary(MESSAGE_PLACEHOLDER_DOESNT_MATCH));
+ handler.reset(ExtensionMessageBundle::Create(catalogs, &error));
EXPECT_TRUE(handler.get() == NULL);
EXPECT_EQ("Variable $a$ used but not defined.", error);
}

Powered by Google App Engine
This is Rietveld 408576698