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/bind.h" | 5 #include "base/bind.h" |
6 #include "base/file_util.h" | 6 #include "base/file_util.h" |
7 #include "base/scoped_temp_dir.h" | 7 #include "base/scoped_temp_dir.h" |
8 #include "chrome/browser/character_encoding.h" | 8 #include "chrome/browser/character_encoding.h" |
9 #include "chrome/browser/net/url_request_mock_util.h" | 9 #include "chrome/browser/net/url_request_mock_util.h" |
10 #include "chrome/browser/prefs/pref_service.h" | 10 #include "chrome/browser/prefs/pref_service.h" |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
116 { "windows-1258.html", "windows-1258" } | 116 { "windows-1258.html", "windows-1258" } |
117 }; | 117 }; |
118 const char* const kAliasTestDir = "alias_mapping"; | 118 const char* const kAliasTestDir = "alias_mapping"; |
119 | 119 |
120 FilePath test_dir_path = FilePath(kTestDir).AppendASCII(kAliasTestDir); | 120 FilePath test_dir_path = FilePath(kTestDir).AppendASCII(kAliasTestDir); |
121 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kEncodingTestDatas); ++i) { | 121 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kEncodingTestDatas); ++i) { |
122 FilePath test_file_path(test_dir_path); | 122 FilePath test_file_path(test_dir_path); |
123 test_file_path = test_file_path.AppendASCII( | 123 test_file_path = test_file_path.AppendASCII( |
124 kEncodingTestDatas[i].file_name); | 124 kEncodingTestDatas[i].file_name); |
125 | 125 |
126 GURL url = URLRequestMockHTTPJob::GetMockUrl(test_file_path); | 126 GURL url = content::URLRequestMockHTTPJob::GetMockUrl(test_file_path); |
127 | 127 |
128 // When looping through all the above files in one WebContents, there's a | 128 // When looping through all the above files in one WebContents, there's a |
129 // race condition on Windows trybots that causes the previous encoding to be | 129 // race condition on Windows trybots that causes the previous encoding to be |
130 // seen sometimes. Create a new tab for each one. http://crbug.com/122053 | 130 // seen sometimes. Create a new tab for each one. http://crbug.com/122053 |
131 ui_test_utils::NavigateToURLWithDisposition( | 131 ui_test_utils::NavigateToURLWithDisposition( |
132 browser(), url, NEW_FOREGROUND_TAB, | 132 browser(), url, NEW_FOREGROUND_TAB, |
133 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); | 133 ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
134 | 134 |
135 EXPECT_EQ(kEncodingTestDatas[i].encoding_name, | 135 EXPECT_EQ(kEncodingTestDatas[i].encoding_name, |
136 chrome::GetActiveWebContents(browser())->GetEncoding()); | 136 chrome::GetActiveWebContents(browser())->GetEncoding()); |
137 chrome::CloseTab(browser()); | 137 chrome::CloseTab(browser()); |
138 } | 138 } |
139 } | 139 } |
140 | 140 |
141 // Marked as flaky: see http://crbug.com/44668 | 141 // Marked as flaky: see http://crbug.com/44668 |
142 IN_PROC_BROWSER_TEST_F(BrowserEncodingTest, TestOverrideEncoding) { | 142 IN_PROC_BROWSER_TEST_F(BrowserEncodingTest, TestOverrideEncoding) { |
143 const char* const kTestFileName = "gb18030_with_iso88591_meta.html"; | 143 const char* const kTestFileName = "gb18030_with_iso88591_meta.html"; |
144 const char* const kExpectedFileName = | 144 const char* const kExpectedFileName = |
145 "expected_gb18030_saved_from_iso88591_meta.html"; | 145 "expected_gb18030_saved_from_iso88591_meta.html"; |
146 const char* const kOverrideTestDir = "user_override"; | 146 const char* const kOverrideTestDir = "user_override"; |
147 | 147 |
148 FilePath test_dir_path = FilePath(kTestDir).AppendASCII(kOverrideTestDir); | 148 FilePath test_dir_path = FilePath(kTestDir).AppendASCII(kOverrideTestDir); |
149 test_dir_path = test_dir_path.AppendASCII(kTestFileName); | 149 test_dir_path = test_dir_path.AppendASCII(kTestFileName); |
150 GURL url = URLRequestMockHTTPJob::GetMockUrl(test_dir_path); | 150 GURL url = content::URLRequestMockHTTPJob::GetMockUrl(test_dir_path); |
151 ui_test_utils::NavigateToURL(browser(), url); | 151 ui_test_utils::NavigateToURL(browser(), url); |
152 content::WebContents* web_contents = chrome::GetActiveWebContents(browser()); | 152 content::WebContents* web_contents = chrome::GetActiveWebContents(browser()); |
153 EXPECT_EQ("ISO-8859-1", web_contents->GetEncoding()); | 153 EXPECT_EQ("ISO-8859-1", web_contents->GetEncoding()); |
154 | 154 |
155 // Override the encoding to "gb18030". | 155 // Override the encoding to "gb18030". |
156 const std::string selected_encoding = | 156 const std::string selected_encoding = |
157 CharacterEncoding::GetCanonicalEncodingNameByAliasName("gb18030"); | 157 CharacterEncoding::GetCanonicalEncodingNameByAliasName("gb18030"); |
158 content::TestNavigationObserver navigation_observer( | 158 content::TestNavigationObserver navigation_observer( |
159 content::Source<content::NavigationController>( | 159 content::Source<content::NavigationController>( |
160 &web_contents->GetController())); | 160 &web_contents->GetController())); |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
254 "ISO-8859-4"); | 254 "ISO-8859-4"); |
255 | 255 |
256 content::WebContents* web_contents = chrome::GetActiveWebContents(browser()); | 256 content::WebContents* web_contents = chrome::GetActiveWebContents(browser()); |
257 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestDatas); ++i) { | 257 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kTestDatas); ++i) { |
258 // Disable auto detect if it is on. | 258 // Disable auto detect if it is on. |
259 browser()->profile()->GetPrefs()->SetBoolean( | 259 browser()->profile()->GetPrefs()->SetBoolean( |
260 prefs::kWebKitUsesUniversalDetector, false); | 260 prefs::kWebKitUsesUniversalDetector, false); |
261 | 261 |
262 FilePath test_file_path(test_dir_path); | 262 FilePath test_file_path(test_dir_path); |
263 test_file_path = test_file_path.AppendASCII(kTestDatas[i].test_file_name); | 263 test_file_path = test_file_path.AppendASCII(kTestDatas[i].test_file_name); |
264 GURL url = URLRequestMockHTTPJob::GetMockUrl(test_file_path); | 264 GURL url = content::URLRequestMockHTTPJob::GetMockUrl(test_file_path); |
265 ui_test_utils::NavigateToURL(browser(), url); | 265 ui_test_utils::NavigateToURL(browser(), url); |
266 | 266 |
267 // Get the encoding used for the page, it must be the default charset we | 267 // Get the encoding used for the page, it must be the default charset we |
268 // just set. | 268 // just set. |
269 EXPECT_EQ("ISO-8859-4", web_contents->GetEncoding()); | 269 EXPECT_EQ("ISO-8859-4", web_contents->GetEncoding()); |
270 | 270 |
271 // Enable the encoding auto detection. | 271 // Enable the encoding auto detection. |
272 browser()->profile()->GetPrefs()->SetBoolean( | 272 browser()->profile()->GetPrefs()->SetBoolean( |
273 prefs::kWebKitUsesUniversalDetector, true); | 273 prefs::kWebKitUsesUniversalDetector, true); |
274 | 274 |
275 content::TestNavigationObserver observer( | 275 content::TestNavigationObserver observer( |
276 content::Source<content::NavigationController>( | 276 content::Source<content::NavigationController>( |
277 &web_contents->GetController())); | 277 &web_contents->GetController())); |
278 chrome::Reload(browser(), CURRENT_TAB); | 278 chrome::Reload(browser(), CURRENT_TAB); |
279 observer.Wait(); | 279 observer.Wait(); |
280 | 280 |
281 // Re-get the encoding of page. It should return the real encoding now. | 281 // Re-get the encoding of page. It should return the real encoding now. |
282 EXPECT_EQ(kTestDatas[i].expected_encoding, web_contents->GetEncoding()); | 282 EXPECT_EQ(kTestDatas[i].expected_encoding, web_contents->GetEncoding()); |
283 | 283 |
284 // Dump the page, the content of dump page should be equal with our expect | 284 // Dump the page, the content of dump page should be equal with our expect |
285 // result file. | 285 // result file. |
286 FilePath expected_result_file_name = | 286 FilePath expected_result_file_name = |
287 FilePath().AppendASCII(kAutoDetectDir).AppendASCII(kExpectedResultDir). | 287 FilePath().AppendASCII(kAutoDetectDir).AppendASCII(kExpectedResultDir). |
288 AppendASCII(kTestDatas[i].expected_result); | 288 AppendASCII(kTestDatas[i].expected_result); |
289 SaveAndCompare(kTestDatas[i].test_file_name, expected_result_file_name); | 289 SaveAndCompare(kTestDatas[i].test_file_name, expected_result_file_name); |
290 } | 290 } |
291 } | 291 } |
OLD | NEW |