Chromium Code Reviews| Index: chrome/browser/ui/prefs/prefs_tab_helper_uitest.cc |
| diff --git a/chrome/browser/ui/prefs/prefs_tab_helper_uitest.cc b/chrome/browser/ui/prefs/prefs_tab_helper_uitest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..db0fec53294f01e984d17109e9d322d73e18e03f |
| --- /dev/null |
| +++ b/chrome/browser/ui/prefs/prefs_tab_helper_uitest.cc |
| @@ -0,0 +1,114 @@ |
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "base/command_line.h" |
| +#include "base/file_util.h" |
| +#include "base/json/json_value_serializer.h" |
| +#include "base/scoped_temp_dir.h" |
| +#include "base/test/test_file_util.h" |
| +#include "chrome/common/chrome_constants.h" |
| +#include "chrome/common/chrome_switches.h" |
| +#include "chrome/common/pref_names.h" |
| +#include "chrome/browser/prefs/pref_service.h" |
| +#include "chrome/test/ui/ui_test.h" |
| + |
| +class PrefsTabHelperUITest : public UITest { |
| + public: |
|
Mattias Nissler (ping if slow)
2011/12/15 15:37:29
can be protected.
mnaganov (inactive)
2011/12/15 16:45:17
Done.
|
| + virtual void SetUp() { |
| + ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| + FilePath tmp_profile = temp_dir_.path().AppendASCII("tmp_profile"); |
| + |
| + ASSERT_TRUE(file_util::CreateDirectory(tmp_profile)); |
| + |
| + FilePath non_global_pref_file; |
| + non_global_pref_file = test_data_directory_ |
| + .AppendASCII("profiles") |
| + .AppendASCII("webkit_global_migration") |
| + .AppendASCII("Default") |
| + .Append(chrome::kPreferencesFilename); |
| + tmp_pref_file_ = tmp_profile.AppendASCII("Default"); |
| + ASSERT_TRUE(file_util::CreateDirectory(tmp_pref_file_)); |
| + tmp_pref_file_ = tmp_pref_file_.Append(chrome::kPreferencesFilename); |
| + |
| + ASSERT_TRUE(file_util::PathExists(non_global_pref_file)); |
| + ASSERT_TRUE(file_util::CopyFile(non_global_pref_file, tmp_pref_file_)); |
| + |
| +#if defined(OS_WIN) |
| + // Make the copy writable. On POSIX we assume the umask allows files |
| + // we create to be writable. |
| + ASSERT_TRUE(::SetFileAttributesW(tmp_pref_file_.value().c_str(), |
| + FILE_ATTRIBUTE_NORMAL)); |
| +#endif |
| + |
| + launch_arguments_.AppendSwitchPath(switches::kUserDataDir, tmp_profile); |
| + UITest::SetUp(); |
| + } |
| + |
| + public: |
|
Mattias Nissler (ping if slow)
2011/12/15 15:37:29
remove
mnaganov (inactive)
2011/12/15 16:45:17
Done.
|
| + FilePath tmp_pref_file_; |
| + |
| + private: |
| + ScopedTempDir temp_dir_; |
| +}; |
| + |
| +static int GetInteger(DictionaryValue* dict, const char* pref) { |
| + int value = 0; |
| + EXPECT_TRUE(dict->GetInteger(pref, &value)); |
| + return value; |
| +} |
| + |
| +static std::string GetString(DictionaryValue* dict, const char* pref) { |
| + std::string value; |
| + EXPECT_TRUE(dict->GetStringASCII(pref, &value)); |
| + return value; |
| +} |
| + |
| +TEST_F(PrefsTabHelperUITest, NonGlobalPrefsAreMigrated) { |
| + QuitBrowser(); |
| + |
| + ASSERT_TRUE(file_util::PathExists(tmp_pref_file_)); |
| + |
| + JSONFileValueSerializer deserializer(tmp_pref_file_); |
| + scoped_ptr<Value> root(deserializer.Deserialize(NULL, NULL)); |
| + ASSERT_TRUE(root.get()); |
| + ASSERT_TRUE(root->IsType(Value::TYPE_DICTIONARY)); |
| + DictionaryValue* root_dict = static_cast<DictionaryValue*>(root.get()); |
| + |
| + EXPECT_FALSE(root_dict->HasKey(prefs::kDefaultCharset)); |
| + EXPECT_FALSE(root_dict->HasKey(prefs::kWebKitDefaultFontSize)); |
| + EXPECT_FALSE(root_dict->HasKey(prefs::kWebKitDefaultFixedFontSize)); |
| + EXPECT_FALSE(root_dict->HasKey(prefs::kWebKitMinimumFontSize)); |
| + EXPECT_FALSE(root_dict->HasKey(prefs::kWebKitMinimumLogicalFontSize)); |
| + EXPECT_FALSE(root_dict->HasKey(prefs::kWebKitCursiveFontFamily)); |
| + EXPECT_FALSE(root_dict->HasKey(prefs::kWebKitFantasyFontFamily)); |
| + EXPECT_FALSE(root_dict->HasKey(prefs::kWebKitFixedFontFamily)); |
| + EXPECT_FALSE(root_dict->HasKey(prefs::kWebKitSansSerifFontFamily)); |
| + EXPECT_FALSE(root_dict->HasKey(prefs::kWebKitSerifFontFamily)); |
| + EXPECT_FALSE(root_dict->HasKey(prefs::kWebKitStandardFontFamily)); |
| + |
| + EXPECT_EQ("ISO-8859-1", GetString(root_dict, prefs::kGlobalDefaultCharset)); |
| + EXPECT_EQ(42, GetInteger(root_dict, prefs::kWebKitGlobalDefaultFontSize)); |
| + EXPECT_EQ(42, |
| + GetInteger(root_dict, prefs::kWebKitGlobalDefaultFixedFontSize)); |
| + EXPECT_EQ(42, GetInteger(root_dict, prefs::kWebKitGlobalMinimumFontSize)); |
| + EXPECT_EQ(42, |
| + GetInteger(root_dict, prefs::kWebKitGlobalMinimumLogicalFontSize)); |
| + EXPECT_EQ("CursiveFontFamily", |
| + GetString(root_dict, prefs::kWebKitGlobalCursiveFontFamily)); |
| + EXPECT_EQ("FantasyFontFamily", |
| + GetString(root_dict, prefs::kWebKitGlobalFantasyFontFamily)); |
| + EXPECT_EQ("FixedFontFamily", |
| + GetString(root_dict, prefs::kWebKitGlobalFixedFontFamily)); |
| + EXPECT_EQ("SansSerifFontFamily", |
| + GetString(root_dict, prefs::kWebKitGlobalSansSerifFontFamily)); |
| + EXPECT_EQ("SerifFontFamily", |
| + GetString(root_dict, prefs::kWebKitGlobalSerifFontFamily)); |
| + EXPECT_EQ("StandardFontFamily", |
| + GetString(root_dict, prefs::kWebKitGlobalStandardFontFamily)); |
| + |
| + bool migrated = false; |
| + EXPECT_TRUE(root_dict->GetBoolean( |
| + prefs::kWebKitSettingsMigratedToGlobal, &migrated)); |
| + EXPECT_TRUE(migrated); |
| +} |