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

Side by Side Diff: blimp/engine/testing/app/blimp_url_rewriter_unittest.cc

Issue 2572563006: [Blimp] Refactor Blimp test engine with embedded test server and URL rewriting (Closed)
Patch Set: John comment Created 3 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright (c) 2016 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 #include "blimp/engine/testing/app/blimp_url_rewriter.h"
6
7 #include <iostream>
8 #include <string>
9
10 #include "blimp/engine/app/blimp_content_browser_client.h"
11 #include "blimp/engine/common/blimp_content_client.h"
12 #include "content/public/browser/browser_url_handler.h"
13 #include "content/public/browser/content_browser_client.h"
14 #include "content/public/test/test_browser_context.h"
15 #include "net/test/embedded_test_server/embedded_test_server.h"
16 #include "testing/gtest/include/gtest/gtest.h"
17 #include "url/gurl.h"
18 #include "url/third_party/mozilla/url_parse.h"
19
20 const base::FilePath::CharType kBlimpTestRoot[] = FILE_PATH_LITERAL("");
21
22 namespace blimp {
23 namespace engine {
24
25 namespace test {
26
27 class BlimpUrlRewriterTest : public testing::Test {
28 protected:
29 void SetUp() override {
30 g_ets_instance.reset(new net::EmbeddedTestServer());
31 g_ets_instance->ServeFilesFromSourceDirectory(
32 base::FilePath(kBlimpTestRoot));
33 ASSERT_TRUE(g_ets_instance->Start());
34
35 content_client_.reset(new BlimpContentClient);
36 content::SetContentClient(content_client_.get());
37 browser_client_.reset(new BlimpContentBrowserClient());
38 content::SetBrowserClientForTesting(browser_client_.get());
39 }
40
41 void TearDown() override {
42 content::SetContentClient(NULL);
43 content_client_.reset();
44 browser_client_.reset();
45 if (g_ets_instance->Started())
46 ASSERT_TRUE(g_ets_instance->ShutdownAndWaitUntilComplete());
47 }
48
49 private:
50 std::unique_ptr<BlimpContentClient> content_client_;
51 std::unique_ptr<BlimpContentBrowserClient> browser_client_;
52 };
53
54 TEST_F(BlimpUrlRewriterTest, UrlRewriteMatchScheme) {
55 // Check that rewriting the URL with a matching scheme works.
56 content::TestBrowserContext browser_context;
57 content::BrowserURLHandler::GetInstance()->AddHandlerPair(
58 &HandleBlimpTestURL, content::BrowserURLHandler::null_handler());
59
60 GURL url("blimp-test://chrome/test/data/title2.html");
61 GURL original_url(url);
62 bool reverse_on_redirect = false;
63 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary(
64 &url, &browser_context, &reverse_on_redirect);
65 ASSERT_NE(original_url, url);
66 ASSERT_TRUE(url.is_valid());
67 ASSERT_TRUE(url.HostIsIPAddress());
68 ASSERT_LT(url::PORT_UNSPECIFIED, url.EffectiveIntPort());
69 }
70
71 TEST_F(BlimpUrlRewriterTest, UrlRewriteHttpHttpsScheme) {
72 // Check that rewriting the URL with a http/https url works
73 content::TestBrowserContext browser_context;
74 content::BrowserURLHandler::GetInstance()->AddHandlerPair(
75 &HandleBlimpTestURL, content::BrowserURLHandler::null_handler());
76
77 GURL url = GURL("http://www.google.com");
78 GURL original_url = GURL(url);
79 bool reverse_on_redirect = false;
80 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary(
81 &url, &browser_context, &reverse_on_redirect);
82 ASSERT_EQ(original_url, url);
83
84 url = GURL("https://www.google.com");
85 original_url = GURL(url);
86 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary(
87 &url, &browser_context, &reverse_on_redirect);
88 ASSERT_EQ(original_url, url);
89 }
90
91 TEST_F(BlimpUrlRewriterTest, UrlRewriteUnmatchScheme) {
92 // Check that rewriting the URL not works with an unmatching url.
93 content::TestBrowserContext browser_context;
94 content::BrowserURLHandler::GetInstance()->AddHandlerPair(
95 &HandleBlimpTestURL, content::BrowserURLHandler::null_handler());
96
97 GURL url = GURL("foo://chrome/test/data/title2.html");
98 GURL original_url = GURL(url);
99 bool reverse_on_redirect = false;
100 content::BrowserURLHandler::GetInstance()->RewriteURLIfNecessary(
101 &url, &browser_context, &reverse_on_redirect);
102 ASSERT_EQ(original_url, url);
103 }
104
105 } // namespace test
106
107 } // namespace engine
108 } // namespace blimp
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698