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

Side by Side Diff: chrome/browser/session_history_uitest.cc

Issue 3034038: GTTF: Move more test server code from net/url_request/url_request_unittest.h (Closed)
Patch Set: hopefully final Created 10 years, 4 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 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_path.h" 5 #include "base/file_path.h"
6 #include "base/platform_thread.h" 6 #include "base/platform_thread.h"
7 #include "base/string_util.h" 7 #include "base/string_util.h"
8 #include "chrome/common/url_constants.h" 8 #include "chrome/common/url_constants.h"
9 #include "chrome/test/automation/tab_proxy.h" 9 #include "chrome/test/automation/tab_proxy.h"
10 #include "chrome/test/automation/browser_proxy.h" 10 #include "chrome/test/automation/browser_proxy.h"
11 #include "chrome/test/ui/ui_test.h" 11 #include "chrome/test/ui/ui_test.h"
12 #include "grit/generated_resources.h" 12 #include "grit/generated_resources.h"
13 #include "net/base/net_util.h" 13 #include "net/base/net_util.h"
14 #include "net/url_request/url_request_unittest.h" 14 #include "net/test/test_server.h"
15 15
16 namespace { 16 namespace {
17 17
18 const wchar_t kDocRoot[] = L"chrome/test/data"; 18 const wchar_t kDocRoot[] = L"chrome/test/data";
19 19
20 class SessionHistoryTest : public UITest { 20 class SessionHistoryTest : public UITest {
21 protected: 21 protected:
22 SessionHistoryTest() : UITest() { 22 SessionHistoryTest() : UITest() {
23 dom_automation_enabled_ = true; 23 dom_automation_enabled_ = true;
24 } 24 }
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 EXPECT_TRUE(tab_->GetCurrentURL(&url)); 73 EXPECT_TRUE(tab_->GetCurrentURL(&url));
74 return url; 74 return url;
75 } 75 }
76 76
77 protected: 77 protected:
78 scoped_refptr<BrowserProxy> window_; 78 scoped_refptr<BrowserProxy> window_;
79 scoped_refptr<TabProxy> tab_; 79 scoped_refptr<TabProxy> tab_;
80 }; 80 };
81 81
82 TEST_F(SessionHistoryTest, BasicBackForward) { 82 TEST_F(SessionHistoryTest, BasicBackForward) {
83 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot)); 83 scoped_refptr<net::HTTPTestServer> server(
84 net::HTTPTestServer::CreateServer(kDocRoot));
84 ASSERT_TRUE(NULL != server.get()); 85 ASSERT_TRUE(NULL != server.get());
85 86
86 // about:blank should be loaded first. 87 // about:blank should be loaded first.
87 ASSERT_FALSE(tab_->GoBack()); 88 ASSERT_FALSE(tab_->GoBack());
88 EXPECT_EQ(L"", GetTabTitle()); 89 EXPECT_EQ(L"", GetTabTitle());
89 90
90 ASSERT_TRUE(tab_->NavigateToURL( 91 ASSERT_TRUE(tab_->NavigateToURL(
91 server->TestServerPage("files/session_history/bot1.html"))); 92 server->TestServerPage("files/session_history/bot1.html")));
92 EXPECT_EQ(L"bot1", GetTabTitle()); 93 EXPECT_EQ(L"bot1", GetTabTitle());
93 94
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 } 140 }
140 141
141 // Test that back/forward works when navigating in subframes. 142 // Test that back/forward works when navigating in subframes.
142 // Fails on Windows. See crbug.com/TODO 143 // Fails on Windows. See crbug.com/TODO
143 #if defined(OS_WIN) 144 #if defined(OS_WIN)
144 #define MAYBE_FrameBackForward FLAKY_FrameBackForward 145 #define MAYBE_FrameBackForward FLAKY_FrameBackForward
145 #else 146 #else
146 #define MAYBE_FrameBackForward FrameBackForward 147 #define MAYBE_FrameBackForward FrameBackForward
147 #endif 148 #endif
148 TEST_F(SessionHistoryTest, MAYBE_FrameBackForward) { 149 TEST_F(SessionHistoryTest, MAYBE_FrameBackForward) {
149 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot)); 150 scoped_refptr<net::HTTPTestServer> server(
151 net::HTTPTestServer::CreateServer(kDocRoot));
150 ASSERT_TRUE(NULL != server.get()); 152 ASSERT_TRUE(NULL != server.get());
151 153
152 // about:blank should be loaded first. 154 // about:blank should be loaded first.
153 GURL home(WideToUTF8(homepage_)); 155 GURL home(WideToUTF8(homepage_));
154 ASSERT_FALSE(tab_->GoBack()); 156 ASSERT_FALSE(tab_->GoBack());
155 EXPECT_EQ(L"", GetTabTitle()); 157 EXPECT_EQ(L"", GetTabTitle());
156 EXPECT_EQ(home, GetTabURL()); 158 EXPECT_EQ(home, GetTabURL());
157 159
158 GURL frames(server->TestServerPage("files/session_history/frames.html")); 160 GURL frames(server->TestServerPage("files/session_history/frames.html"));
159 ASSERT_TRUE(tab_->NavigateToURL(frames)); 161 ASSERT_TRUE(tab_->NavigateToURL(frames));
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 EXPECT_EQ(L"bot2", GetTabTitle()); 206 EXPECT_EQ(L"bot2", GetTabTitle());
205 EXPECT_EQ(frames, GetTabURL()); 207 EXPECT_EQ(frames, GetTabURL());
206 208
207 ASSERT_TRUE(tab_->GoBack()); 209 ASSERT_TRUE(tab_->GoBack());
208 EXPECT_EQ(L"bot1", GetTabTitle()); 210 EXPECT_EQ(L"bot1", GetTabTitle());
209 EXPECT_EQ(frames, GetTabURL()); 211 EXPECT_EQ(frames, GetTabURL());
210 } 212 }
211 213
212 // Test that back/forward preserves POST data and document state in subframes. 214 // Test that back/forward preserves POST data and document state in subframes.
213 TEST_F(SessionHistoryTest, FrameFormBackForward) { 215 TEST_F(SessionHistoryTest, FrameFormBackForward) {
214 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot)); 216 scoped_refptr<net::HTTPTestServer> server(
217 net::HTTPTestServer::CreateServer(kDocRoot));
215 ASSERT_TRUE(NULL != server.get()); 218 ASSERT_TRUE(NULL != server.get());
216 219
217 // about:blank should be loaded first. 220 // about:blank should be loaded first.
218 ASSERT_FALSE(tab_->GoBack()); 221 ASSERT_FALSE(tab_->GoBack());
219 EXPECT_EQ(L"", GetTabTitle()); 222 EXPECT_EQ(L"", GetTabTitle());
220 223
221 GURL frames(server->TestServerPage("files/session_history/frames.html")); 224 GURL frames(server->TestServerPage("files/session_history/frames.html"));
222 ASSERT_TRUE(tab_->NavigateToURL(frames)); 225 ASSERT_TRUE(tab_->NavigateToURL(frames));
223 EXPECT_EQ(L"bot1", GetTabTitle()); 226 EXPECT_EQ(L"bot1", GetTabTitle());
224 227
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 } 268 }
266 } 269 }
267 270
268 // TODO(mpcomplete): enable this when Bug 734372 is fixed: 271 // TODO(mpcomplete): enable this when Bug 734372 is fixed:
269 // "Doing a session history navigation does not restore newly-created subframe 272 // "Doing a session history navigation does not restore newly-created subframe
270 // document state" 273 // document state"
271 // Test that back/forward preserves POST data and document state when navigating 274 // Test that back/forward preserves POST data and document state when navigating
272 // across frames (ie, from frame -> nonframe). 275 // across frames (ie, from frame -> nonframe).
273 // Hangs, see http://crbug.com/45058. 276 // Hangs, see http://crbug.com/45058.
274 TEST_F(SessionHistoryTest, DISABLED_CrossFrameFormBackForward) { 277 TEST_F(SessionHistoryTest, DISABLED_CrossFrameFormBackForward) {
275 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot)); 278 scoped_refptr<net::HTTPTestServer> server(
279 net::HTTPTestServer::CreateServer(kDocRoot));
276 ASSERT_TRUE(NULL != server.get()); 280 ASSERT_TRUE(NULL != server.get());
277 281
278 // about:blank should be loaded first. 282 // about:blank should be loaded first.
279 ASSERT_FALSE(tab_->GoBack()); 283 ASSERT_FALSE(tab_->GoBack());
280 EXPECT_EQ(L"", GetTabTitle()); 284 EXPECT_EQ(L"", GetTabTitle());
281 285
282 GURL frames(server->TestServerPage("files/session_history/frames.html")); 286 GURL frames(server->TestServerPage("files/session_history/frames.html"));
283 ASSERT_TRUE(tab_->NavigateToURL(frames)); 287 ASSERT_TRUE(tab_->NavigateToURL(frames));
284 EXPECT_EQ(L"bot1", GetTabTitle()); 288 EXPECT_EQ(L"bot1", GetTabTitle());
285 289
(...skipping 24 matching lines...) Expand all
310 EXPECT_EQ(frames, GetTabURL()); 314 EXPECT_EQ(frames, GetTabURL());
311 315
312 SubmitForm("isubmit"); 316 SubmitForm("isubmit");
313 EXPECT_EQ(L"text=&select=a", GetTabTitle()); 317 EXPECT_EQ(L"text=&select=a", GetTabTitle());
314 EXPECT_EQ(frames, GetTabURL()); 318 EXPECT_EQ(frames, GetTabURL());
315 } 319 }
316 320
317 // Test that back/forward entries are created for reference fragment 321 // Test that back/forward entries are created for reference fragment
318 // navigations. Bug 730379. 322 // navigations. Bug 730379.
319 TEST_F(SessionHistoryTest, FragmentBackForward) { 323 TEST_F(SessionHistoryTest, FragmentBackForward) {
320 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot)); 324 scoped_refptr<net::HTTPTestServer> server(
325 net::HTTPTestServer::CreateServer(kDocRoot));
321 ASSERT_TRUE(NULL != server.get()); 326 ASSERT_TRUE(NULL != server.get());
322 327
323 // about:blank should be loaded first. 328 // about:blank should be loaded first.
324 ASSERT_FALSE(tab_->GoBack()); 329 ASSERT_FALSE(tab_->GoBack());
325 EXPECT_EQ(L"", GetTabTitle()); 330 EXPECT_EQ(L"", GetTabTitle());
326 331
327 GURL fragment(server->TestServerPage("files/session_history/fragment.html")); 332 GURL fragment(server->TestServerPage("files/session_history/fragment.html"));
328 ASSERT_TRUE(tab_->NavigateToURL(fragment)); 333 ASSERT_TRUE(tab_->NavigateToURL(fragment));
329 EXPECT_EQ(L"fragment", GetTabTitle()); 334 EXPECT_EQ(L"fragment", GetTabTitle());
330 EXPECT_EQ(fragment, GetTabURL()); 335 EXPECT_EQ(fragment, GetTabURL());
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 387
383 // Test that the javascript window.history object works. 388 // Test that the javascript window.history object works.
384 // NOTE: history.go(N) does not do anything if N is outside the bounds of the 389 // NOTE: history.go(N) does not do anything if N is outside the bounds of the
385 // back/forward list (such as trigger our start/stop loading events). This 390 // back/forward list (such as trigger our start/stop loading events). This
386 // means the test will hang if it attempts to navigate too far forward or back, 391 // means the test will hang if it attempts to navigate too far forward or back,
387 // since we'll be waiting forever for a load stop event. 392 // since we'll be waiting forever for a load stop event.
388 // 393 //
389 // TODO(brettw) bug 50648: fix flakyness. This test seems like it was failing 394 // TODO(brettw) bug 50648: fix flakyness. This test seems like it was failing
390 // about 1/4 of the time on Vista by failing to execute JavascriptGo (see bug). 395 // about 1/4 of the time on Vista by failing to execute JavascriptGo (see bug).
391 TEST_F(SessionHistoryTest, FLAKY_JavascriptHistory) { 396 TEST_F(SessionHistoryTest, FLAKY_JavascriptHistory) {
392 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot)); 397 scoped_refptr<net::HTTPTestServer> server(
398 net::HTTPTestServer::CreateServer(kDocRoot));
393 ASSERT_TRUE(NULL != server.get()); 399 ASSERT_TRUE(NULL != server.get());
394 400
395 // about:blank should be loaded first. 401 // about:blank should be loaded first.
396 ASSERT_FALSE(tab_->GoBack()); 402 ASSERT_FALSE(tab_->GoBack());
397 EXPECT_EQ(L"", GetTabTitle()); 403 EXPECT_EQ(L"", GetTabTitle());
398 404
399 ASSERT_TRUE(tab_->NavigateToURL( 405 ASSERT_TRUE(tab_->NavigateToURL(
400 server->TestServerPage("files/session_history/bot1.html"))); 406 server->TestServerPage("files/session_history/bot1.html")));
401 EXPECT_EQ(L"bot1", GetTabTitle()); 407 EXPECT_EQ(L"bot1", GetTabTitle());
402 408
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 // try to go back and forward with JavaScript. Bug 1136715. 471 // try to go back and forward with JavaScript. Bug 1136715.
466 // (Hard to test right now, because pages like about:network cause the 472 // (Hard to test right now, because pages like about:network cause the
467 // TabProxy to hang. This is because they do not appear to use the 473 // TabProxy to hang. This is because they do not appear to use the
468 // NotificationService.) 474 // NotificationService.)
469 } 475 }
470 476
471 // This test is failing consistently. See http://crbug.com/22560 477 // This test is failing consistently. See http://crbug.com/22560
472 TEST_F(SessionHistoryTest, FAILS_LocationReplace) { 478 TEST_F(SessionHistoryTest, FAILS_LocationReplace) {
473 // Test that using location.replace doesn't leave the title of the old page 479 // Test that using location.replace doesn't leave the title of the old page
474 // visible. 480 // visible.
475 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot)); 481 scoped_refptr<net::HTTPTestServer> server(
482 net::HTTPTestServer::CreateServer(kDocRoot));
476 ASSERT_TRUE(NULL != server.get()); 483 ASSERT_TRUE(NULL != server.get());
477 484
478 ASSERT_TRUE(tab_->NavigateToURL(server->TestServerPage( 485 ASSERT_TRUE(tab_->NavigateToURL(server->TestServerPage(
479 "files/session_history/replace.html?no-title.html"))); 486 "files/session_history/replace.html?no-title.html")));
480 EXPECT_EQ(L"", GetTabTitle()); 487 EXPECT_EQ(L"", GetTabTitle());
481 } 488 }
482 489
483 // This test is flaky. See bug 22111. 490 // This test is flaky. See bug 22111.
484 TEST_F(SessionHistoryTest, FLAKY_HistorySearchXSS) { 491 TEST_F(SessionHistoryTest, FLAKY_HistorySearchXSS) {
485 // about:blank should be loaded first. 492 // about:blank should be loaded first.
486 ASSERT_FALSE(tab_->GoBack()); 493 ASSERT_FALSE(tab_->GoBack());
487 EXPECT_EQ(L"", GetTabTitle()); 494 EXPECT_EQ(L"", GetTabTitle());
488 495
489 GURL url(std::string(chrome::kChromeUIHistoryURL) + 496 GURL url(std::string(chrome::kChromeUIHistoryURL) +
490 "#q=%3Cimg%20src%3Dx%3Ax%20onerror%3D%22document.title%3D'XSS'%22%3E"); 497 "#q=%3Cimg%20src%3Dx%3Ax%20onerror%3D%22document.title%3D'XSS'%22%3E");
491 ASSERT_TRUE(tab_->NavigateToURL(url)); 498 ASSERT_TRUE(tab_->NavigateToURL(url));
492 // Mainly, this is to ensure we send a synchronous message to the renderer 499 // Mainly, this is to ensure we send a synchronous message to the renderer
493 // so that we're not susceptible (less susceptible?) to a race condition. 500 // so that we're not susceptible (less susceptible?) to a race condition.
494 // Should a race condition ever trigger, it won't result in flakiness. 501 // Should a race condition ever trigger, it won't result in flakiness.
495 int num = tab_->FindInPage(L"<img", FWD, CASE_SENSITIVE, false, NULL); 502 int num = tab_->FindInPage(L"<img", FWD, CASE_SENSITIVE, false, NULL);
496 EXPECT_GT(num, 0); 503 EXPECT_GT(num, 0);
497 EXPECT_EQ(L"History", GetTabTitle()); 504 EXPECT_EQ(L"History", GetTabTitle());
498 } 505 }
499 506
500 TEST_F(SessionHistoryTest, LocationChangeInSubframe) { 507 TEST_F(SessionHistoryTest, LocationChangeInSubframe) {
501 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot)); 508 scoped_refptr<net::HTTPTestServer> server(
509 net::HTTPTestServer::CreateServer(kDocRoot));
502 ASSERT_TRUE(server.get()); 510 ASSERT_TRUE(server.get());
503 511
504 ASSERT_TRUE(tab_->NavigateToURL(server->TestServerPage( 512 ASSERT_TRUE(tab_->NavigateToURL(server->TestServerPage(
505 "files/session_history/location_redirect.html"))); 513 "files/session_history/location_redirect.html")));
506 EXPECT_EQ(L"Default Title", GetTabTitle()); 514 EXPECT_EQ(L"Default Title", GetTabTitle());
507 515
508 ASSERT_TRUE(tab_->NavigateToURL(GURL( 516 ASSERT_TRUE(tab_->NavigateToURL(GURL(
509 "javascript:void(frames[0].navigate())"))); 517 "javascript:void(frames[0].navigate())")));
510 EXPECT_EQ(L"foo", GetTabTitle()); 518 EXPECT_EQ(L"foo", GetTabTitle());
511 519
512 ASSERT_TRUE(tab_->GoBack()); 520 ASSERT_TRUE(tab_->GoBack());
513 EXPECT_EQ(L"Default Title", GetTabTitle()); 521 EXPECT_EQ(L"Default Title", GetTabTitle());
514 } 522 }
515 523
516 // Hangs, see http://crbug.com/38583. 524 // Hangs, see http://crbug.com/38583.
517 #if defined(OS_WIN) 525 #if defined(OS_WIN)
518 #define HistoryLength DISABLED_HistoryLength 526 #define HistoryLength DISABLED_HistoryLength
519 #endif // defined(OS_WIN) 527 #endif // defined(OS_WIN)
520 TEST_F(SessionHistoryTest, HistoryLength) { 528 TEST_F(SessionHistoryTest, HistoryLength) {
521 scoped_refptr<HTTPTestServer> server(HTTPTestServer::CreateServer(kDocRoot)); 529 scoped_refptr<net::HTTPTestServer> server(
530 net::HTTPTestServer::CreateServer(kDocRoot));
522 ASSERT_TRUE(server.get()); 531 ASSERT_TRUE(server.get());
523 532
524 int length; 533 int length;
525 ASSERT_TRUE(tab_->ExecuteAndExtractInt( 534 ASSERT_TRUE(tab_->ExecuteAndExtractInt(
526 L"", L"domAutomationController.send(history.length)", &length)); 535 L"", L"domAutomationController.send(history.length)", &length));
527 EXPECT_EQ(1, length); 536 EXPECT_EQ(1, length);
528 537
529 ASSERT_TRUE(tab_->NavigateToURL(server->TestServerPage("files/title1.html"))); 538 ASSERT_TRUE(tab_->NavigateToURL(server->TestServerPage("files/title1.html")));
530 539
531 ASSERT_TRUE(tab_->ExecuteAndExtractInt( 540 ASSERT_TRUE(tab_->ExecuteAndExtractInt(
(...skipping 14 matching lines...) Expand all
546 ASSERT_TRUE(tab_->GoBack()); 555 ASSERT_TRUE(tab_->GoBack());
547 556
548 // Ensure history.length is properly truncated. 557 // Ensure history.length is properly truncated.
549 ASSERT_TRUE(tab_->NavigateToURL(server->TestServerPage("files/title2.html"))); 558 ASSERT_TRUE(tab_->NavigateToURL(server->TestServerPage("files/title2.html")));
550 ASSERT_TRUE(tab_->ExecuteAndExtractInt( 559 ASSERT_TRUE(tab_->ExecuteAndExtractInt(
551 L"", L"domAutomationController.send(history.length)", &length)); 560 L"", L"domAutomationController.send(history.length)", &length));
552 EXPECT_EQ(2, length); 561 EXPECT_EQ(2, length);
553 } 562 }
554 563
555 } // namespace 564 } // namespace
OLDNEW
« no previous file with comments | « chrome/browser/repost_form_warning_uitest.cc ('k') | chrome/browser/sessions/session_restore_uitest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698