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

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchFakeServer.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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchFakeServer.java
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchFakeServer.java b/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchFakeServer.java
new file mode 100644
index 0000000000000000000000000000000000000000..d16e0656c0928010e9f9765120810bb1d2ca2b52
--- /dev/null
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchFakeServer.java
@@ -0,0 +1,151 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.contextualsearch;
+
+import org.chromium.base.VisibleForTesting;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import javax.annotation.Nullable;
+
+/**
+ * Implements a fake Contextual Search server, for testing purposes.
+ * TODO(donnd): add more functionality to this class once the overall approach has been validated.
+ * TODO(donnd): rename this class when we refactor and rename the interface it implements. Should
+ * be something like ContextualSearchFakeEnvironment.
+ */
+@VisibleForTesting
+class ContextualSearchFakeServer implements ContextualSearchNetworkCommunicator {
+
+ private final ContextualSearchNetworkCommunicator mBaseManager;
+ private String mLoadedUrl;
+ private String mSearchTermRequested;
+ private boolean mShouldUseHttps;
+ private int mLoadedUrlCount;
+ private boolean mIsSearchContentViewCreated;
+
+ /**
+ * Constructs a fake Contextual Search server that will callback to the given baseManager.
+ * @param baseManager The manager to call back to for server responses.
+ */
+ @VisibleForTesting
+ ContextualSearchFakeServer(ContextualSearchNetworkCommunicator baseManager) {
+ mBaseManager = baseManager;
+ }
+
+ @Override
+ public void startSearchTermResolutionRequest(String selection) {
+ mLoadedUrl = null;
+ mSearchTermRequested = selection;
+ }
+
+ @Override
+ public void continueSearchTermResolutionRequest() {
+ mLoadedUrl = null;
+ }
+
+ @Override
+ public void loadUrl(String url) {
+ mLoadedUrl = url;
+ mLoadedUrlCount++;
+ // This will not actually load a URL because no Search Content View will be created
+ // when under test -- see comments in createNewSearchContentView.
+ mBaseManager.loadUrl(url);
+ }
+
+ @Override
+ public void handleSearchTermResolutionResponse(boolean isNetworkUnavailable, int responseCode,
+ String searchTerm, String displayText, String alternateTerm, boolean doPreventPreload) {
+ mBaseManager.handleSearchTermResolutionResponse(isNetworkUnavailable, responseCode,
+ searchTerm, displayText, alternateTerm, doPreventPreload);
+ }
+
+ @Override
+ @Nullable public URL getBasePageUrl() {
+ URL baseUrl = mBaseManager.getBasePageUrl();
+ if (mShouldUseHttps && baseUrl != null) {
+ try {
+ return new URL(baseUrl.toString().replace("http://", "https://"));
+ } catch (MalformedURLException e) {
+ // TODO(donnd): Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+ return baseUrl;
+ }
+
+ @Override
+ public void handleDidNavigateMainFrame(String url, int httpResultCode) {
+ mBaseManager.handleDidNavigateMainFrame(url, httpResultCode);
+ }
+
+ @Override
+ public void createNewSearchContentView() {
+ mIsSearchContentViewCreated = true;
+ // Don't call the super method because that will cause loadUrl to make a live request!
+ // This method is only called by loadUrl, which will subseqently check if the CV was
+ // successfully created before issuing the search request.
+ // TODO(donnd): This is brittle, improve! E.g. make live requests to a local server.
+ }
+
+ @Override
+ public void destroySearchContentView() {
+ mIsSearchContentViewCreated = false;
+ mBaseManager.destroySearchContentView();
+ }
+
+ /**
+ * @return The search term requested, or {@code null} if no search term was requested.
+ */
+ @VisibleForTesting
+ String getSearchTermRequested() {
+ return mSearchTermRequested;
+ }
+
+ /**
+ * @return the loaded search result page URL if any was requested.
+ */
+ @VisibleForTesting
+ String getLoadedUrl() {
+ return mLoadedUrl;
+ }
+
+ /**
+ * @return The number of times we loaded a URL in the Content View.
+ */
+ @VisibleForTesting
+ int loadedUrlCount() {
+ return mLoadedUrlCount;
+ }
+
+ /**
+ * Sets whether to return an HTTPS URL instead of HTTP, from {@link #getBasePageUrl}.
+ */
+ @VisibleForTesting
+ void setShouldUseHttps(boolean setting) {
+ mShouldUseHttps = setting;
+ }
+
+ /**
+ * @return Whether we tried to create the Search Content View.
+ */
+ @VisibleForTesting
+ boolean isSearchContentViewCreated() {
+ return mIsSearchContentViewCreated;
+ }
+
+ /**
+ * Resets the fake server's member data.
+ */
+ @VisibleForTesting
+ void reset() {
+ mLoadedUrl = null;
+ mSearchTermRequested = null;
+ mShouldUseHttps = false;
+ mLoadedUrlCount = 0;
+ mIsSearchContentViewCreated = false;
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698