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

Unified Diff: chrome_frame/test/test_with_web_server.h

Issue 126143005: Remove Chrome Frame code and resources. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync to r244038 Created 6 years, 11 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
« no previous file with comments | « chrome_frame/test/test_server_test.cc ('k') | chrome_frame/test/test_with_web_server.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome_frame/test/test_with_web_server.h
diff --git a/chrome_frame/test/test_with_web_server.h b/chrome_frame/test/test_with_web_server.h
deleted file mode 100644
index e909683ebe55994cb72742165fedd24972ed6be8..0000000000000000000000000000000000000000
--- a/chrome_frame/test/test_with_web_server.h
+++ /dev/null
@@ -1,372 +0,0 @@
-// Copyright (c) 2012 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.
-
-#ifndef CHROME_FRAME_TEST_TEST_WITH_WEB_SERVER_H_
-#define CHROME_FRAME_TEST_TEST_WITH_WEB_SERVER_H_
-
-#include <windows.h>
-#include <string>
-
-#include "base/files/scoped_temp_dir.h"
-#include "base/strings/string_util.h"
-#include "base/strings/stringprintf.h"
-#include "base/strings/utf_string_conversions.h"
-#include "base/win/scoped_handle.h"
-#include "chrome_frame/chrome_tab.h"
-#include "chrome_frame/test/chrome_frame_test_utils.h"
-#include "chrome_frame/test/test_server.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-// Specifies the invocation method for CF.
-class CFInvocation {
- public:
- enum Type {
- NONE = 0,
- META_TAG,
- HTTP_HEADER
- };
-
- CFInvocation(): method_(NONE) {}
- explicit CFInvocation(Type method): method_(method) {}
-
- // Convience methods for creating this class.
- static CFInvocation None() { return CFInvocation(NONE); }
- static CFInvocation MetaTag() { return CFInvocation(META_TAG); }
- static CFInvocation HttpHeader() { return CFInvocation(HTTP_HEADER); }
-
- // Returns whether this page does invoke CF.
- bool invokes_cf() const {
- return method_ != NONE;
- }
-
- Type type() const { return method_; }
-
- private:
- Type method_;
-};
-
-// An interface for listeners of interesting events on a MockWebServer.
-class WebServerListener {
- public:
- virtual ~WebServerListener() {}
-
- // Invoked when a MockWebServer receives an expected response; see
- // MockWebServer::ExpectAndHandlePostedResult.
- virtual void OnExpectedResponse() = 0;
-};
-
-// Simple Gmock friendly web server. Sample usage:
-// MockWebServer mock(9999, "0.0.0.0");
-// EXPECT_CALL(mock, Get(_, StrEq("/favicon.ico"), _)).WillRepeatedly(SendFast(
-// "HTTP/1.1 404 Not Found"
-// "text/html; charset=UTF-8", std::string()));
-//
-// EXPECT_CALL(mock, Get(_, StrEq("/book"), _)).WillRepeatedly(Send(
-// "HTTP/1.1 302 Found\r\n"
-// "Connection: close\r\n"
-// "Content-Type: text/html\r\n"
-// "Location: library\r\n",
-// "<html>Lalalala</html>", 3, 1000));
-//
-// EXPECT_CALL(mock, Get(_, StrEq("/library"), _)).WillRepeatedly(Send(
-// "HTTP/1.1 200 OK\r\n"
-// "Connection: close\r\n"
-// "Content-Type: text/html\r\n",
-// "<html><meta http-equiv=\"X-UA-Compatible\" content=\"chrome=1\" />"
-// "<body>Rendered in CF.</body></html>", 4, 1000));
-class MockWebServer : public test_server::HTTPTestServer {
- public:
- MockWebServer(int port, const std::wstring& address, base::FilePath root_dir)
- : test_server::HTTPTestServer(port, address, root_dir), listener_(NULL) {}
-
- // Overriden from test_server::HTTPTestServer.
- MOCK_METHOD3(Get, void(test_server::ConfigurableConnection* connection,
- const std::wstring& path,
- const test_server::Request& r));
- MOCK_METHOD3(Post, void(test_server::ConfigurableConnection* connection,
- const std::wstring& path,
- const test_server::Request& r));
-
- // Expect a GET request for |url|. Respond with the file appropriate for
- // the given |url|. Modify the file to follow the given CFInvocation method.
- // The response includes a no-cache header. |allow_meta_tag_double_req|
- // specifies whether to allow the request to happen twice if the invocation
- // is using the CF meta tag.
- void ExpectAndServeRequest(CFInvocation invocation, const std::wstring& url);
-
- // Expect a number of GET requests for |url|. Rest is similar to the function
- // ExpectAndServeRequest.
- void ExpectAndServeRequestWithCardinality(CFInvocation invocation,
- const std::wstring& url,
- testing::Cardinality cardinality);
-
- // Same as above except do not include the no-cache header.
- void ExpectAndServeRequestAllowCache(CFInvocation invocation,
- const std::wstring& url);
-
- // Expect any number of GETs for the given resource path (e.g, /favicon.ico)
- // and respond with the file, if it exists, or a 404 if it does not.
- void ExpectAndServeRequestAnyNumberTimes(CFInvocation invocation,
- const std::wstring& path_prefix);
-
- void set_listener(WebServerListener* listener) { listener_ = listener; }
-
- // Expect a POST to an URL containing |post_suffix|, saving the response
- // contents for retrieval by posted_result(). Invokes the listener's
- // OnExpectedResponse method if the posted response matches the expected
- // result.
- void ExpectAndHandlePostedResult(CFInvocation invocation,
- const std::wstring& post_suffix);
-
- // Expect and serve all incoming GET requests.
- void ExpectAndServeAnyRequests(CFInvocation invocation) {
- ExpectAndServeRequestAnyNumberTimes(invocation, L"");
- }
-
-
- // Send a response on the given connection appropriate for |resource_uri|.
- // If the file referred to by |path| exists, send the file data, otherwise
- // send 404. Modify the file data according to the given invocation method.
- void SendResponseHelper(test_server::ConfigurableConnection* connection,
- const std::wstring& resource_uri,
- const test_server::Request& request,
- CFInvocation invocation,
- bool add_no_cache_header);
- // Handles the posted /writefile response
- void HandlePostedResponse(test_server::ConfigurableConnection* connection,
- const test_server::Request& request);
-
- void ClearResults() {
- posted_result_.clear();
- expected_result_.clear();
- }
-
- void set_expected_result(const std::string& expected_result) {
- expected_result_ = expected_result;
- }
-
- const std::string& posted_result() const {
- return posted_result_;
- }
-
- private:
- WebServerListener* listener_;
- // Holds the results of tests which post success/failure.
- std::string posted_result_;
- std::string expected_result_;
-};
-
-class MockWebServerListener : public WebServerListener {
- public:
- MOCK_METHOD0(OnExpectedResponse, void());
-};
-
-// Class that:
-// 1) Starts the local webserver,
-// 2) Supports launching browsers - Internet Explorer with local url
-// 3) Wait the webserver to finish. It is supposed the test webpage to shutdown
-// the server by navigating to "kill" page
-// 4) Supports read the posted results from the test webpage to the "dump"
-// webserver directory
-class ChromeFrameTestWithWebServer : public testing::Test {
- public:
- ChromeFrameTestWithWebServer();
-
- protected:
- enum BrowserKind { INVALID, IE, CHROME };
-
- bool LaunchBrowser(BrowserKind browser, const wchar_t* url);
-
- // Returns true if the test completed in time, or false if it timed out.
- bool WaitForTestToComplete(base::TimeDelta duration);
-
- // Waits for the page to notify us of the window.onload event firing.
- // Note that the milliseconds value is only approximate.
- bool WaitForOnLoad(int milliseconds);
-
- // Launches the specified browser and waits for the test to complete (see
- // WaitForTestToComplete). Then checks that the outcome is equal to the
- // expected result. The test is repeated once if it fails due to a timeout.
- // This function uses EXPECT_TRUE and ASSERT_TRUE for all steps performed
- // hence no return value.
- void SimpleBrowserTestExpectedResult(BrowserKind browser,
- const wchar_t* page, const char* result);
- void SimpleBrowserTest(BrowserKind browser, const wchar_t* page);
-
- // Sets up expectations for a page to post back a result.
- void ExpectAndHandlePostedResult();
-
- // Test if chrome frame correctly reports its version.
- void VersionTest(BrowserKind browser, const wchar_t* page);
-
- void CloseBrowser();
-
- // Ensures (well, at least tries to ensure) that the browser window has focus.
- bool BringBrowserToTop();
-
- const base::FilePath& GetCFTestFilePath() {
- return test_file_path_;
- }
-
- static chrome_frame_test::TimedMsgLoop& loop() {
- return *loop_;
- }
-
- static testing::StrictMock<MockWebServerListener>& listener_mock() {
- return *listener_mock_;
- }
-
- static testing::StrictMock<MockWebServer>& server_mock() {
- return *server_mock_;
- }
-
- static void SetUpTestCase();
- static void TearDownTestCase();
-
- static const base::FilePath& GetChromeUserDataDirectory();
-
- virtual void SetUp() OVERRIDE;
- virtual void TearDown() OVERRIDE;
-
- // The on-disk path to our html test files.
- static base::FilePath test_file_path_;
- static base::FilePath results_dir_;
- static base::FilePath CFInstall_path_;
- static base::FilePath CFInstance_path_;
- static base::FilePath chrome_user_data_dir_;
-
- // The user data directory used for Chrome instances.
- static base::ScopedTempDir temp_dir_;
-
- // The web server from which we serve the web!
- static chrome_frame_test::TimedMsgLoop* loop_;
- static std::string local_address_;
- static testing::StrictMock<MockWebServerListener>* listener_mock_;
- static testing::StrictMock<MockWebServer>* server_mock_;
-
- BrowserKind browser_;
- base::win::ScopedHandle browser_handle_;
-};
-
-// A helper class for doing some bookkeeping when using the
-// SimpleWebServer class.
-class SimpleWebServerTest {
- public:
- SimpleWebServerTest(const std::string& address, int port)
- : server_(address, port), port_(port) {
- }
-
- ~SimpleWebServerTest() {
- server_.DeleteAllResponses();
- }
-
- template <class ResponseClass>
- void PopulateStaticFileListT(const wchar_t* pages[], int count,
- const base::FilePath& directory) {
- for (int i = 0; i < count; ++i) {
- server_.AddResponse(new ResponseClass(
- base::StringPrintf("/%ls", pages[i]).c_str(),
- directory.Append(pages[i])));
- }
- }
-
- std::wstring FormatHttpPath(const wchar_t* document_path) {
- return base::StringPrintf(L"http://%ls:%i/%ls",
- base::ASCIIToWide(server_.host()).c_str(), port_,
- document_path);
- }
-
- // Returns the last client request object.
- // Under normal circumstances this will be the request for /quit.
- const test_server::Request& last_request() const {
- const test_server::ConnectionList& connections = server_.connections();
- DCHECK(connections.size());
- const test_server::Connection* c = connections.back();
- return c->request();
- }
-
- bool FindRequest(const std::string& path,
- const test_server::Request** request) {
- test_server::ConnectionList::const_iterator index;
- for (index = server_.connections().begin();
- index != server_.connections().end(); index++) {
- const test_server::Connection* connection = *index;
- if (!lstrcmpiA(connection->request().path().c_str(), path.c_str())) {
- if (request)
- *request = &connection->request();
- return true;
- }
- }
- return false;
- }
-
- // Counts the number of times a page was requested.
- // Optionally checks if the request method for each is equal to
- // |expected_method|. If expected_method is NULL no such check is made.
- int GetRequestCountForPage(const wchar_t* page, const char* expected_method) {
- // Check how many requests we got for the cf page.
- test_server::ConnectionList::const_iterator it;
- int requests = 0;
- const test_server::ConnectionList& connections = server_.connections();
- for (it = connections.begin(); it != connections.end(); ++it) {
- const test_server::Connection* c = (*it);
- const test_server::Request& r = c->request();
- if (!r.path().empty() &&
- base::ASCIIToWide(r.path().substr(1)).compare(page) == 0) {
- if (expected_method) {
- EXPECT_EQ(expected_method, r.method());
- }
- requests++;
- }
- }
- return requests;
- }
-
- test_server::SimpleWebServer* web_server() {
- return &server_;
- }
-
- protected:
- test_server::SimpleWebServer server_;
- int port_;
-};
-
-ACTION_P2(SendFast, headers, content) {
- arg0->Send(headers, content);
-}
-
-ACTION_P4(Send, headers, content, chunk, timeout) {
- test_server::ConfigurableConnection::SendOptions options(
- test_server::ConfigurableConnection::SendOptions::
- IMMEDIATE_HEADERS_DELAYED_CONTENT, chunk, timeout);
- arg0->SendWithOptions(std::string(headers),
- std::string(content),
- options);
-}
-
-ACTION_P4(SendSlow, headers, content, chunk, timeout) {
- test_server::ConfigurableConnection::SendOptions options(
- test_server::ConfigurableConnection::SendOptions::DELAYED, chunk, timeout);
- arg0->SendWithOptions(std::string(headers),
- std::string(content),
- options);
-}
-
-// Sends a response with the file data for the given path, if the file exists,
-// or a 404 if the file does not. This response includes a no-cache header.
-ACTION_P2(SendResponse, server, invocation) {
- server->SendResponseHelper(arg0, arg1, arg2, invocation, true);
-}
-
-// Same as above except that the response does not include the no-cache header.
-ACTION_P2(SendAllowCacheResponse, server, invocation) {
- server->SendResponseHelper(arg0, arg1, invocation, false);
-}
-
-ACTION_P2(HandlePostedResponseHelper, server, invocation) {
- server->HandlePostedResponse(arg0, arg2);
-}
-
-#endif // CHROME_FRAME_TEST_TEST_WITH_WEB_SERVER_H_
« no previous file with comments | « chrome_frame/test/test_server_test.cc ('k') | chrome_frame/test/test_with_web_server.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698