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

Unified Diff: trunk/src/chrome/browser/net/websocket_browsertest.cc

Issue 388493002: Revert 282307 "Map WebSocket URL schemes to HTTP URL schemes for..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 5 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 | « no previous file | trunk/src/net/data/websocket/README » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: trunk/src/chrome/browser/net/websocket_browsertest.cc
===================================================================
--- trunk/src/chrome/browser/net/websocket_browsertest.cc (revision 282330)
+++ trunk/src/chrome/browser/net/websocket_browsertest.cc (working copy)
@@ -2,141 +2,51 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "base/compiler_specific.h"
-#include "base/memory/ref_counted.h"
-#include "base/memory/scoped_ptr.h"
#include "base/strings/string_util.h"
#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/ui/browser.h"
-#include "chrome/browser/ui/login/login_prompt.h"
#include "chrome/browser/ui/tabs/tab_strip_model.h"
#include "chrome/test/base/in_process_browser_test.h"
#include "chrome/test/base/ui_test_utils.h"
-#include "content/public/browser/navigation_controller.h"
-#include "content/public/browser/notification_details.h"
-#include "content/public/browser/notification_registrar.h"
-#include "content/public/browser/notification_source.h"
-#include "content/public/browser/web_contents.h"
#include "content/public/test/browser_test_utils.h"
#include "net/base/test_data_directory.h"
#include "net/test/spawned_test_server/spawned_test_server.h"
-#include "url/gurl.h"
namespace {
class WebSocketBrowserTest : public InProcessBrowserTest {
public:
WebSocketBrowserTest()
- : ws_server_(net::SpawnedTestServer::TYPE_WS,
- net::SpawnedTestServer::kLocalhost,
- net::GetWebSocketTestDataDirectory()),
- wss_server_(net::SpawnedTestServer::TYPE_WSS,
- SSLOptions(SSLOptions::CERT_OK),
- net::GetWebSocketTestDataDirectory()) {}
-
- protected:
- // Prepare the title watcher.
- virtual void SetUpOnMainThread() OVERRIDE {
- watcher_.reset(new content::TitleWatcher(
- browser()->tab_strip_model()->GetActiveWebContents(),
- base::ASCIIToUTF16("PASS")));
- watcher_->AlsoWaitForTitle(base::ASCIIToUTF16("FAIL"));
+ : ws_server_(net::SpawnedTestServer::TYPE_WS,
+ net::SpawnedTestServer::kLocalhost,
+ net::GetWebSocketTestDataDirectory()),
+ wss_server_(net::SpawnedTestServer::TYPE_WSS,
+ SSLOptions(SSLOptions::CERT_OK),
+ net::GetWebSocketTestDataDirectory()) {
}
- virtual void CleanUpOnMainThread() OVERRIDE { watcher_.reset(); }
-
- std::string WaitAndGetTitle() {
- return base::UTF16ToUTF8(watcher_->WaitAndGetTitle());
- }
-
+ protected:
net::SpawnedTestServer ws_server_;
net::SpawnedTestServer wss_server_;
private:
typedef net::SpawnedTestServer::SSLOptions SSLOptions;
- scoped_ptr<content::TitleWatcher> watcher_;
DISALLOW_COPY_AND_ASSIGN(WebSocketBrowserTest);
};
-// Framework for tests using the connect_to.html page served by a separate HTTP
-// server.
-class WebSocketBrowserConnectToTest : public WebSocketBrowserTest {
- protected:
- WebSocketBrowserConnectToTest()
- : http_server_(net::SpawnedTestServer::TYPE_HTTP,
- net::SpawnedTestServer::kLocalhost,
- net::GetWebSocketTestDataDirectory()) {}
-
- // The title watcher and HTTP server are set up automatically by the test
- // framework. Each test case still needs to configure and start the
- // WebSocket server(s) it needs.
- virtual void SetUpOnMainThread() OVERRIDE {
- WebSocketBrowserTest::SetUpOnMainThread();
- ASSERT_TRUE(http_server_.StartInBackground());
- }
-
- // Supply a ws: or wss: URL to connect to.
- void ConnectTo(GURL url) {
- ASSERT_TRUE(http_server_.BlockUntilStarted());
- std::string query("url=" + url.spec());
- GURL::Replacements replacements;
- replacements.SetQueryStr(query);
- ui_test_utils::NavigateToURL(browser(),
- http_server_.GetURL("files/connect_to.html")
- .ReplaceComponents(replacements));
- }
-
- private:
- net::SpawnedTestServer http_server_;
-};
-
-// Automatically fill in any login prompts that appear with the supplied
-// credentials.
-class AutoLogin : public content::NotificationObserver {
- public:
- AutoLogin(const std::string& username,
- const std::string& password,
- content::NavigationController* navigation_controller)
- : username_(base::UTF8ToUTF16(username)),
- password_(base::UTF8ToUTF16(password)),
- logged_in_(false) {
- registrar_.Add(
- this,
- chrome::NOTIFICATION_AUTH_NEEDED,
- content::Source<content::NavigationController>(navigation_controller));
- }
-
- // NotificationObserver implementation
- virtual void Observe(int type,
- const content::NotificationSource& source,
- const content::NotificationDetails& details) OVERRIDE {
- DCHECK_EQ(chrome::NOTIFICATION_AUTH_NEEDED, type);
- scoped_refptr<LoginHandler> login_handler =
- content::Details<LoginNotificationDetails>(details)->handler();
- login_handler->SetAuth(username_, password_);
- logged_in_ = true;
- }
-
- bool logged_in() const { return logged_in_; }
-
- private:
- const base::string16 username_;
- const base::string16 password_;
- bool logged_in_;
-
- content::NotificationRegistrar registrar_;
-
- DISALLOW_COPY_AND_ASSIGN(AutoLogin);
-};
-
// Test that the browser can handle a WebSocket frame split into multiple TCP
// segments.
IN_PROC_BROWSER_TEST_F(WebSocketBrowserTest, WebSocketSplitSegments) {
// Launch a WebSocket server.
ASSERT_TRUE(ws_server_.Start());
+ // Setup page title observer.
+ content::WebContents* tab =
+ browser()->tab_strip_model()->GetActiveWebContents();
+ content::TitleWatcher watcher(tab, base::ASCIIToUTF16("PASS"));
+ watcher.AlsoWaitForTitle(base::ASCIIToUTF16("FAIL"));
+
// Visit a HTTP page for testing.
std::string scheme("http");
GURL::Replacements replacements;
@@ -146,13 +56,20 @@
ws_server_.GetURL(
"split_packet_check.html").ReplaceComponents(replacements));
- EXPECT_EQ("PASS", WaitAndGetTitle());
+ const base::string16 result = watcher.WaitAndGetTitle();
+ EXPECT_TRUE(EqualsASCII(result, "PASS"));
}
IN_PROC_BROWSER_TEST_F(WebSocketBrowserTest, SecureWebSocketSplitRecords) {
// Launch a secure WebSocket server.
ASSERT_TRUE(wss_server_.Start());
+ // Setup page title observer.
+ content::WebContents* tab =
+ browser()->tab_strip_model()->GetActiveWebContents();
+ content::TitleWatcher watcher(tab, base::ASCIIToUTF16("PASS"));
+ watcher.AlsoWaitForTitle(base::ASCIIToUTF16("FAIL"));
+
// Visit a HTTPS page for testing.
std::string scheme("https");
GURL::Replacements replacements;
@@ -162,101 +79,8 @@
wss_server_.GetURL(
"split_packet_check.html").ReplaceComponents(replacements));
- EXPECT_EQ("PASS", WaitAndGetTitle());
+ const base::string16 result = watcher.WaitAndGetTitle();
+ EXPECT_TRUE(EqualsASCII(result, "PASS"));
}
-IN_PROC_BROWSER_TEST_F(WebSocketBrowserTest, WebSocketBasicAuthInHTTPURL) {
- // Launch a basic-auth-protected WebSocket server.
- ws_server_.set_websocket_basic_auth(true);
- ASSERT_TRUE(ws_server_.Start());
-
- // Visit a HTTP page for testing.
- std::string scheme("http");
- GURL::Replacements replacements;
- replacements.SetSchemeStr(scheme);
- ui_test_utils::NavigateToURL(
- browser(),
- ws_server_.GetURLWithUserAndPassword("connect_check.html", "test", "test")
- .ReplaceComponents(replacements));
-
- EXPECT_EQ("PASS", WaitAndGetTitle());
-}
-
-IN_PROC_BROWSER_TEST_F(WebSocketBrowserTest, WebSocketBasicAuthInHTTPSURL) {
- // Launch a basic-auth-protected secure WebSocket server.
- wss_server_.set_websocket_basic_auth(true);
- ASSERT_TRUE(wss_server_.Start());
-
- // Visit a HTTPS page for testing.
- std::string scheme("https");
- GURL::Replacements replacements;
- replacements.SetSchemeStr(scheme);
- ui_test_utils::NavigateToURL(
- browser(),
- wss_server_.GetURLWithUserAndPassword(
- "connect_check.html", "test", "test")
- .ReplaceComponents(replacements));
-
- EXPECT_EQ("PASS", WaitAndGetTitle());
-}
-
-// This test verifies that login details entered by the user into the login
-// prompt to authenticate the main page are re-used for WebSockets from the same
-// origin.
-IN_PROC_BROWSER_TEST_F(WebSocketBrowserTest, WebSocketBasicAuthPrompt) {
- // Launch a basic-auth-protected WebSocket server.
- ws_server_.set_websocket_basic_auth(true);
- ASSERT_TRUE(ws_server_.Start());
-
- content::NavigationController* navigation_controller =
- &browser()->tab_strip_model()->GetActiveWebContents()->GetController();
- AutoLogin auto_login("test", "test", navigation_controller);
-
- // Visit a HTTP page for testing.
- std::string scheme("http");
- GURL::Replacements replacements;
- replacements.SetSchemeStr(scheme);
- ui_test_utils::NavigateToURL(
- browser(),
- ws_server_.GetURL("connect_check.html").ReplaceComponents(replacements));
-
- EXPECT_TRUE(auto_login.logged_in());
- EXPECT_EQ("PASS", WaitAndGetTitle());
-}
-
-IN_PROC_BROWSER_TEST_F(WebSocketBrowserConnectToTest,
- WebSocketBasicAuthInWSURL) {
- // Launch a basic-auth-protected WebSocket server.
- ws_server_.set_websocket_basic_auth(true);
- ASSERT_TRUE(ws_server_.Start());
-
- ConnectTo(ws_server_.GetURLWithUserAndPassword(
- "echo-with-no-extension", "test", "test"));
-
- EXPECT_EQ("PASS", WaitAndGetTitle());
-}
-
-IN_PROC_BROWSER_TEST_F(WebSocketBrowserConnectToTest,
- WebSocketBasicAuthInWSURLBadCreds) {
- // Launch a basic-auth-protected WebSocket server.
- ws_server_.set_websocket_basic_auth(true);
- ASSERT_TRUE(ws_server_.Start());
-
- ConnectTo(ws_server_.GetURLWithUserAndPassword(
- "echo-with-no-extension", "wrong-user", "wrong-password"));
-
- EXPECT_EQ("FAIL", WaitAndGetTitle());
-}
-
-IN_PROC_BROWSER_TEST_F(WebSocketBrowserConnectToTest,
- WebSocketBasicAuthNoCreds) {
- // Launch a basic-auth-protected WebSocket server.
- ws_server_.set_websocket_basic_auth(true);
- ASSERT_TRUE(ws_server_.Start());
-
- ConnectTo(ws_server_.GetURL("echo-with-no-extension"));
-
- EXPECT_EQ("FAIL", WaitAndGetTitle());
-}
-
} // namespace
« no previous file with comments | « no previous file | trunk/src/net/data/websocket/README » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698