OLD | NEW |
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 #include "base/file_util.h" | 5 #include "base/file_util.h" |
6 #include "base/path_service.h" | 6 #include "base/path_service.h" |
7 #include "base/prefs/pref_service.h" | 7 #include "base/prefs/pref_service.h" |
8 #include "chrome/browser/profiles/profile.h" | 8 #include "chrome/browser/profiles/profile.h" |
9 #include "chrome/browser/ui/browser.h" | 9 #include "chrome/browser/ui/browser.h" |
10 #include "chrome/common/chrome_constants.h" | 10 #include "chrome/common/chrome_constants.h" |
11 #include "chrome/common/chrome_paths.h" | 11 #include "chrome/common/chrome_paths.h" |
12 #include "chrome/common/pref_names.h" | 12 #include "chrome/common/pref_names.h" |
13 #include "chrome/test/base/in_process_browser_test.h" | 13 #include "chrome/test/base/in_process_browser_test.h" |
14 #include "chrome/test/base/testing_profile.h" | 14 #include "chrome/test/base/testing_profile.h" |
15 | 15 |
16 #if defined (OS_CHROMEOS) | |
17 #include "base/command_line.h" | |
18 #include "chrome/browser/profiles/profiles_state.h" | |
19 #include "chrome/common/chrome_switches.h" | |
20 #endif | |
21 | |
22 #if defined(OS_CHROMEOS) | |
23 // TODO(nkostylev): Cleanup this code once multi-profiles are enabled by | |
24 // default on CrOS. http://crbug.com/351655 | |
25 class PrefsTabHelperBrowserTest : public InProcessBrowserTest, | |
26 public testing::WithParamInterface<bool> { | |
27 #else | |
28 class PrefsTabHelperBrowserTest : public InProcessBrowserTest { | 16 class PrefsTabHelperBrowserTest : public InProcessBrowserTest { |
29 #endif | |
30 protected: | 17 protected: |
31 #if defined(OS_CHROMEOS) | |
32 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE { | |
33 if (GetParam()) | |
34 command_line->AppendSwitch(switches::kMultiProfiles); | |
35 } | |
36 #endif | |
37 | |
38 virtual base::FilePath GetPreferencesFilePath() { | 18 virtual base::FilePath GetPreferencesFilePath() { |
39 base::FilePath test_data_directory; | 19 base::FilePath test_data_directory; |
40 PathService::Get(chrome::DIR_TEST_DATA, &test_data_directory); | 20 PathService::Get(chrome::DIR_TEST_DATA, &test_data_directory); |
41 return test_data_directory | 21 return test_data_directory |
42 .AppendASCII("profiles") | 22 .AppendASCII("profiles") |
43 .AppendASCII("web_prefs") | 23 .AppendASCII("web_prefs") |
44 .AppendASCII("Default") | 24 .AppendASCII("Default") |
45 .Append(chrome::kPreferencesFilename); | 25 .Append(chrome::kPreferencesFilename); |
46 } | 26 } |
47 | 27 |
48 virtual bool SetUpUserDataDirectory() OVERRIDE { | 28 virtual bool SetUpUserDataDirectory() OVERRIDE { |
49 base::FilePath user_data_directory; | 29 base::FilePath user_data_directory; |
50 PathService::Get(chrome::DIR_USER_DATA, &user_data_directory); | 30 PathService::Get(chrome::DIR_USER_DATA, &user_data_directory); |
51 std::string profile_dir(TestingProfile::kTestUserProfileDir); | |
52 #if defined (OS_CHROMEOS) | |
53 // On ChromeOS if multi-profiles are enabled, the profile directory has a | |
54 // special prefix. | |
55 if (profiles::IsMultipleProfilesEnabled()) | |
56 profile_dir.insert(0, chrome::kProfileDirPrefix); | |
57 #endif | |
58 base::FilePath default_profile = | 31 base::FilePath default_profile = |
59 user_data_directory.AppendASCII(profile_dir); | 32 user_data_directory.AppendASCII(TestingProfile::kTestUserProfileDir); |
60 if (!base::CreateDirectory(default_profile)) { | 33 if (!base::CreateDirectory(default_profile)) { |
61 LOG(ERROR) << "Can't create " << default_profile.MaybeAsASCII(); | 34 LOG(ERROR) << "Can't create " << default_profile.MaybeAsASCII(); |
62 return false; | 35 return false; |
63 } | 36 } |
64 base::FilePath pref_file = GetPreferencesFilePath(); | 37 base::FilePath pref_file = GetPreferencesFilePath(); |
65 if (!base::PathExists(pref_file)) { | 38 if (!base::PathExists(pref_file)) { |
66 LOG(ERROR) << "Doesn't exist " << pref_file.MaybeAsASCII(); | 39 LOG(ERROR) << "Doesn't exist " << pref_file.MaybeAsASCII(); |
67 return false; | 40 return false; |
68 } | 41 } |
69 base::FilePath default_pref_file = | 42 base::FilePath default_pref_file = |
70 default_profile.Append(chrome::kPreferencesFilename); | 43 default_profile.Append(chrome::kPreferencesFilename); |
71 if (!base::CopyFile(pref_file, default_pref_file)) { | 44 if (!base::CopyFile(pref_file, default_pref_file)) { |
72 LOG(ERROR) << "Copy error from " << pref_file.MaybeAsASCII() | 45 LOG(ERROR) << "Copy error from " << pref_file.MaybeAsASCII() |
73 << " to " << default_pref_file.MaybeAsASCII(); | 46 << " to " << default_pref_file.MaybeAsASCII(); |
74 return false; | 47 return false; |
75 } | 48 } |
76 | 49 |
77 #if defined(OS_WIN) | 50 #if defined(OS_WIN) |
78 // Make the copy writable. On POSIX we assume the umask allows files | 51 // Make the copy writable. On POSIX we assume the umask allows files |
79 // we create to be writable. | 52 // we create to be writable. |
80 if (!::SetFileAttributesW(default_pref_file.value().c_str(), | 53 if (!::SetFileAttributesW(default_pref_file.value().c_str(), |
81 FILE_ATTRIBUTE_NORMAL)) return false; | 54 FILE_ATTRIBUTE_NORMAL)) return false; |
82 #endif | 55 #endif |
83 return true; | 56 return true; |
84 } | 57 } |
85 }; | 58 }; |
86 | 59 |
87 // Tests that a sampling of web prefs are registered and ones with values in the | 60 // Tests that a sampling of web prefs are registered and ones with values in the |
88 // test user preferences file take on those values. | 61 // test user preferences file take on those values. |
89 #if defined(OS_CHROMEOS) | |
90 IN_PROC_BROWSER_TEST_P(PrefsTabHelperBrowserTest, WebPrefs) { | |
91 #else | |
92 IN_PROC_BROWSER_TEST_F(PrefsTabHelperBrowserTest, WebPrefs) { | 62 IN_PROC_BROWSER_TEST_F(PrefsTabHelperBrowserTest, WebPrefs) { |
93 #endif | |
94 PrefService* prefs = browser()->profile()->GetPrefs(); | 63 PrefService* prefs = browser()->profile()->GetPrefs(); |
95 | 64 |
96 EXPECT_TRUE(prefs->FindPreference( | 65 EXPECT_TRUE(prefs->FindPreference( |
97 prefs::kWebKitCursiveFontFamily)->IsDefaultValue()); | 66 prefs::kWebKitCursiveFontFamily)->IsDefaultValue()); |
98 EXPECT_TRUE(prefs->FindPreference( | 67 EXPECT_TRUE(prefs->FindPreference( |
99 prefs::kWebKitSerifFontFamily)->IsDefaultValue()); | 68 prefs::kWebKitSerifFontFamily)->IsDefaultValue()); |
100 EXPECT_TRUE(prefs->FindPreference( | 69 EXPECT_TRUE(prefs->FindPreference( |
101 prefs::kWebKitSerifFontFamilyJapanese)->IsDefaultValue()); | 70 prefs::kWebKitSerifFontFamilyJapanese)->IsDefaultValue()); |
102 | 71 |
103 EXPECT_EQ("ISO-8859-1", prefs->GetString(prefs::kDefaultCharset)); | 72 EXPECT_EQ("ISO-8859-1", prefs->GetString(prefs::kDefaultCharset)); |
104 EXPECT_EQ(16, prefs->GetInteger(prefs::kWebKitDefaultFontSize)); | 73 EXPECT_EQ(16, prefs->GetInteger(prefs::kWebKitDefaultFontSize)); |
105 EXPECT_EQ("Nanum Gothic", | 74 EXPECT_EQ("Nanum Gothic", |
106 prefs->GetString(prefs::kWebKitStandardFontFamilyKorean)); | 75 prefs->GetString(prefs::kWebKitStandardFontFamilyKorean)); |
107 EXPECT_EQ("Tinos", prefs->GetString(prefs::kWebKitStandardFontFamily)); | 76 EXPECT_EQ("Tinos", prefs->GetString(prefs::kWebKitStandardFontFamily)); |
108 EXPECT_EQ("DejaVu Sans", prefs->GetString(prefs::kWebKitSansSerifFontFamily)); | 77 EXPECT_EQ("DejaVu Sans", prefs->GetString(prefs::kWebKitSansSerifFontFamily)); |
109 }; | 78 }; |
110 | 79 |
111 #if defined(OS_CHROMEOS) | 80 |
112 INSTANTIATE_TEST_CASE_P(PrefsTabHelperBrowserTestInstantiation, | |
113 PrefsTabHelperBrowserTest, | |
114 testing::Bool()); | |
115 #endif | |
OLD | NEW |