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

Side by Side Diff: chrome/android/javatests/src/org/chromium/chrome/browser/tabmodel/ContextMenuLoadUrlParamsTest.java

Issue 1141283003: Upstream oodles of Chrome for Android code into Chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: final patch? Created 5 years, 7 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
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.tabmodel;
6
7 import android.test.FlakyTest;
8
9 import com.google.android.apps.chrome.R;
10
11 import org.chromium.base.ThreadUtils;
12 import org.chromium.chrome.browser.ChromeActivity;
13 import org.chromium.chrome.browser.Tab;
14 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
15 import org.chromium.chrome.browser.tabmodel.TabWindowManager.TabModelSelectorFac tory;
16 import org.chromium.chrome.test.ChromeTabbedActivityTestBase;
17 import org.chromium.chrome.test.util.TestHttpServerClient;
18 import org.chromium.chrome.test.util.browser.contextmenu.ContextMenuUtils;
19 import org.chromium.content_public.browser.LoadUrlParams;
20 import org.chromium.ui.base.WindowAndroid;
21
22 import java.util.concurrent.TimeoutException;
23
24 /**
25 * Verifies URL load parameters set when triggering navigations from the context menu.
26 */
27 public class ContextMenuLoadUrlParamsTest extends ChromeTabbedActivityTestBase {
28 // Load parameters of the last call to openNewTab().
29 LoadUrlParams mOpenNewTabLoadUrlParams;
30
31 // Records parameters of calls to TabModelSelector methods and otherwise beh aves like
32 // TabModelSelectorImpl.
33 class RecordingTabModelSelector extends TabModelSelectorImpl {
34 @Override
35 public Tab openNewTab(LoadUrlParams loadUrlParams, TabLaunchType type, T ab parent,
36 boolean incognito) {
37 mOpenNewTabLoadUrlParams = loadUrlParams;
38 return super.openNewTab(loadUrlParams, type, parent, incognito);
39 }
40
41 public RecordingTabModelSelector(ChromeActivity activity, int selectorIn dex,
42 WindowAndroid windowAndroid) {
43 super(activity, selectorIndex, windowAndroid);
44 }
45 }
46
47 @Override
48 public void setUp() throws Exception {
49 // Plant RecordingTabModelSelector as the TabModelSelector used in Main. The factory has to
50 // be set before super.setUp(), as super.setUp() creates Main and conseq uently the
51 // TabModelSelector.
52 ThreadUtils.runOnUiThreadBlocking(new Runnable() {
53 @Override
54 public void run() {
55 TabWindowManager.getInstance().setTabModelSelectorFactory(
56 new TabModelSelectorFactory() {
57 @Override
58 public TabModelSelector buildSelector(ChromeActivity activity,
59 WindowAndroid windowAndroid, int selectorInd ex) {
60 return new RecordingTabModelSelector(activity, s electorIndex,
61 windowAndroid);
62 }
63 });
64 }
65 });
66 super.setUp();
67 }
68
69 /**
70 * Verifies that the referrer is correctly set for "Open in new tab".
71 * Bug: crbug.com/413216
72 * @MediumTest
73 * @Feature({"Browser"})
74 */
75 @FlakyTest
76 public void testOpenInNewTabReferrer()
77 throws InterruptedException, TimeoutException {
78 String url =
79 TestHttpServerClient.getUrl("chrome/test/data/android/context_me nu_test.html");
80 String expectedReferrer = url;
81 triggerContextMenuLoad(url, "testLink", R.id.contextmenu_open_in_new_tab );
82
83 assertNotNull(mOpenNewTabLoadUrlParams);
84 assertEquals(expectedReferrer, mOpenNewTabLoadUrlParams.getReferrer().ge tUrl());
85 }
86
87 /**
88 * Verifies that the referrer is not set for "Open in new incognito tab".
89 * Bug: crbug.com/413216
90 * @MediumTest
91 * @Feature({"Browser"})
92 */
93 @FlakyTest
94 public void testOpenInIncognitoTabNoReferrer()
95 throws InterruptedException, TimeoutException {
96 String url =
97 TestHttpServerClient.getUrl("chrome/test/data/android/context_me nu_test.html");
98 triggerContextMenuLoad(url, "testLink", R.id.contextmenu_open_in_incogni to_tab);
99
100 assertNotNull(mOpenNewTabLoadUrlParams);
101 assertNull(mOpenNewTabLoadUrlParams.getReferrer());
102 }
103
104 /**
105 * Verifies that the referrer is stripped from username and password fields.
106 * Bug: crbug.com/413216
107 * @MediumTest
108 * @Feature({"Browser"})
109 */
110 @FlakyTest
111 public void testOpenInNewTabSanitizeReferrer()
112 throws InterruptedException, TimeoutException {
113 String url = TestHttpServerClient.getUrl("chrome/test/data/android/conte xt_menu_test.html",
114 "user", "pass");
115 String expectedReferrer =
116 TestHttpServerClient.getUrl("chrome/test/data/android/context_me nu_test.html");
117 assertTrue(url.contains("pass")); // Sanity check.
118 triggerContextMenuLoad(url, "testLink", R.id.contextmenu_open_in_new_tab );
119
120 assertNotNull(mOpenNewTabLoadUrlParams);
121 assertEquals(expectedReferrer, mOpenNewTabLoadUrlParams.getReferrer().ge tUrl());
122 }
123
124 private void triggerContextMenuLoad(String url, String openerDomId, int menu ItemId)
125 throws InterruptedException, TimeoutException {
126 loadUrl(url);
127 assertWaitForPageScaleFactorMatch(0.5f);
128 Tab tab = getActivity().getActivityTab();
129 ContextMenuUtils.selectContextMenuItem(this, tab, openerDomId, menuItemI d);
130 getInstrumentation().waitForIdleSync();
131 }
132
133 @Override
134 public void startMainActivity() throws InterruptedException {
135 startMainActivityOnBlankPage();
136 }
137 }
138
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698