Commit e95247e5 authored by Jialiu Lin's avatar Jialiu Lin Committed by Commit Bot

Fix Flacky tests in SBNavigationObserverBrowserTest

Fix flacky tests in SBNavigationObserverBrowserTest is caused by the
non-deterministic iframe navigation order. This CL add checks to both
possible orders.

Bug: 739716,736354
Change-Id: I0b256d492500b8f2872485235eb0b826dae6c827
Reviewed-on: https://chromium-review.googlesource.com/594711Reviewed-by: default avatarVarun Khaneja <vakh@chromium.org>
Reviewed-by: default avatarLuke Z <lpz@chromium.org>
Commit-Queue: Jialiu Lin <jialiul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491398}
parent 9e9427d3
......@@ -1166,14 +1166,9 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest,
referrer_chain.Get(2));
}
#if defined(OS_WIN)
#define MAYBE_SubFrameDirectDownload DISABLED_SubFrameDirectDownload
#else
#define MAYBE_SubFrameDirectDownload SubFrameDirectDownload
#endif
// Click a link in a subframe and start download.
IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest,
MAYBE_SubFrameDirectDownload) {
SubFrameDirectDownload) {
GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL);
ClickTestLink("sub_frame_download_attribution", 1, initial_url);
std::string test_name =
......@@ -1205,22 +1200,43 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest,
true, // has_committed
false, // has_server_redirect
nav_list->Get(1));
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_url, // original_request_url
iframe_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(2));
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_retargeting_url, // original_request_url
iframe_retargeting_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(3));
// The order of the next two navigation events may vary. We check for both
// possibilities. Their order doesn't impact referrer chain attribution logic.
if (nav_list->Get(2)->original_request_url == iframe_url) {
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_url, // original_request_url
iframe_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(2));
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_retargeting_url, // original_request_url
iframe_retargeting_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(3));
} else {
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_retargeting_url, // original_request_url
iframe_retargeting_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(2));
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_url, // original_request_url
iframe_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(3));
}
VerifyNavigationEvent(iframe_url, // source_url
multi_frame_test_url, // source_main_frame_url
download_url, // original_request_url
......@@ -1272,14 +1288,9 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest,
referrer_chain.Get(3));
}
#if defined(OS_WIN)
#define MAYBE_SubFrameNewTabDownload DISABLED_SubFrameNewTabDownload
#else
#define MAYBE_SubFrameNewTabDownload SubFrameNewTabDownload
#endif
// Click a link in a subframe and open download in a new tab.
IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest,
MAYBE_SubFrameNewTabDownload) {
SubFrameNewTabDownload) {
GURL initial_url = embedded_test_server()->GetURL(kSingleFrameTestURL);
ClickTestLink("sub_frame_download_attribution", 1, initial_url);
std::string test_name =
......@@ -1312,22 +1323,43 @@ IN_PROC_BROWSER_TEST_F(SBNavigationObserverBrowserTest,
true, // has_committed
false, // has_server_redirect
nav_list->Get(1));
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_url, // original_request_url
iframe_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(2));
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_retargeting_url, // original_request_url
iframe_retargeting_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(3));
// The order of the next two navigation events may vary. We check for both
// possibilities. Their order doesn't impact referrer chain attribution logic.
if (nav_list->Get(2)->original_request_url == iframe_url) {
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_url, // original_request_url
iframe_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(2));
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_retargeting_url, // original_request_url
iframe_retargeting_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(3));
} else {
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_retargeting_url, // original_request_url
iframe_retargeting_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(2));
VerifyNavigationEvent(GURL(), // source_url
multi_frame_test_url, // source_main_frame_url
iframe_url, // original_request_url
iframe_url, // destination_url
false, // is_user_initiated,
true, // has_committed
false, // has_server_redirect
nav_list->Get(3));
}
VerifyNavigationEvent(iframe_retargeting_url, // source_url
multi_frame_test_url, // source_main_frame_url
blank_url, // original_request_url
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment