Index: chrome/test/ui/history_uitest.cc |
=================================================================== |
--- chrome/test/ui/history_uitest.cc (revision 17847) |
+++ chrome/test/ui/history_uitest.cc (working copy) |
@@ -30,10 +30,16 @@ |
// History UI tests |
#include "base/file_util.h" |
+#include "base/gfx/point.h" |
+#include "base/gfx/rect.h" |
+#include "chrome/browser/view_ids.h" |
#include "chrome/common/chrome_paths.h" |
+#include "chrome/test/automation/browser_proxy.h" |
#include "chrome/test/automation/tab_proxy.h" |
+#include "chrome/test/automation/window_proxy.h" |
#include "chrome/test/ui/ui_test.h" |
#include "net/base/net_util.h" |
+#include "views/event.h" |
const char kTestCompleteCookie[] = "status"; |
const char kTestCompleteSuccess[] = "OK"; |
@@ -48,7 +54,11 @@ |
} |
}; |
-TEST_F(HistoryTester, VerifyHistoryLength) { |
+// TODO(yuzo): Fix the following flaky (hence disabled) tests. |
+// These tests are flaky because automatic and user-initiated transitions are |
+// distinguished based on the interval between page load and redirect. |
+ |
+TEST_F(HistoryTester, DISABLED_VerifyHistoryLength) { |
// Test the history length for the following page transitions. |
// |
// Test case 1: |
@@ -66,7 +76,7 @@ |
GURL url_1 = GetTestUrl(L"History", test_case_1); |
NavigateToURL(url_1); |
WaitForFinish("History_Length_Test_1", "1", url_1, kTestCompleteCookie, |
- kTestCompleteSuccess, action_max_timeout_ms()); |
+ kTestCompleteSuccess, action_max_timeout_ms()); |
// Test case 2 |
std::wstring test_case_2 = L"history_length_test_page_2.html"; |
@@ -82,3 +92,52 @@ |
WaitForFinish("History_Length_Test_3", "1", url_3, kTestCompleteCookie, |
kTestCompleteSuccess, action_max_timeout_ms()); |
} |
+ |
+#if defined(OS_WIN) |
+// This test requires simulated mouse click, which is possible only for Windows. |
+TEST_F(HistoryTester, DISABLED_ConsiderRedirectAfterGestureAsUserInitiated) { |
+ // Test the history length for the following page transition. |
+ // |
+ // -open-> Page 11 -slow_redirect-> Page 12. |
+ // |
+ // If redirect occurs after a user gesture, e.g., mouse click, the |
+ // redirect is more likely to be user-initiated rather than automatic. |
+ // Therefore, Page 11 should be in the history in addition to Page 12. |
+ |
+ std::wstring test_case = L"history_length_test_page_11.html"; |
+ GURL url = GetTestUrl(L"History", test_case); |
+ NavigateToURL(url); |
+ WaitForFinish("History_Length_Test_11", "1", url, kTestCompleteCookie, |
+ kTestCompleteSuccess, action_max_timeout_ms()); |
+ |
+ // Simulate click. This only works for Windows. |
+ scoped_refptr<BrowserProxy> browser = automation()->GetBrowserWindow(0); |
+ scoped_refptr<WindowProxy> window = browser->GetWindow(); |
+ gfx::Rect tab_view_bounds; |
+ ASSERT_TRUE(window->GetViewBounds(VIEW_ID_TAB_CONTAINER, &tab_view_bounds, |
+ true)); |
+ POINT point(tab_view_bounds.CenterPoint().ToPOINT()); |
+ ASSERT_TRUE( |
+ window->SimulateOSClick(point, views::Event::EF_LEFT_BUTTON_DOWN)); |
+ |
+ NavigateToURL(GURL("javascript:redirectToPage12()")); |
+ WaitForFinish("History_Length_Test_12", "1", url, kTestCompleteCookie, |
+ kTestCompleteSuccess, action_max_timeout_ms()); |
+} |
+#endif // defined(OS_WIN) |
+ |
+TEST_F(HistoryTester, DISABLED_ConsiderSlowRedirectAsUserInitiated) { |
+ // Test the history length for the following page transition. |
+ // |
+ // -open-> Page 21 -redirect-> Page 22. |
+ // |
+ // If redirect occurs more than 5 seconds later after the page is loaded, |
+ // the redirect is likely to be user-initiated. |
+ // Therefore, Page 21 should be in the history in addition to Page 22. |
+ |
+ std::wstring test_case = L"history_length_test_page_21.html"; |
+ GURL url = GetTestUrl(L"History", test_case); |
+ NavigateToURL(url); |
+ WaitForFinish("History_Length_Test_21", "1", url, kTestCompleteCookie, |
+ kTestCompleteSuccess, action_max_timeout_ms()); |
+} |