1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- // Copyright 2020 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.
- #include <android/multinetwork.h>
- #include <string>
- #include "android_webview/browser/aw_pac_processor.h"
- #include "base/memory/raw_ptr.h"
- #include "base/test/task_environment.h"
- #include "testing/gtest/include/gtest/gtest.h"
- namespace android_webview {
- namespace {
- const std::string kScript =
- "function FindProxyForURL(url, host)\n"
- "{\n"
- "\treturn \"PROXY localhost:8080; PROXY localhost:8081; DIRECT \";\n"
- "}\n";
- const std::string kScriptDnsResolve =
- "var x = dnsResolveEx(\"localhost\");\n"
- "function FindProxyForURL(url, host) {\n"
- "\treturn \"PROXY \" + x + \":80\";\n"
- "}";
- const std::string kRequestUrl = "http://testurl.test";
- } // namespace
- class AwPacProcessorTest : public testing::Test {
- public:
- void TearDown() override { delete pac_processor_; }
- protected:
- base::test::TaskEnvironment task_environment_{
- base::test::TaskEnvironment::TimeSource::MOCK_TIME};
- raw_ptr<AwPacProcessor> pac_processor_ = new AwPacProcessor();
- };
- TEST_F(AwPacProcessorTest, MakeProxyRequest) {
- EXPECT_TRUE(pac_processor_->SetProxyScript(kScript));
- std::string result;
- EXPECT_TRUE(pac_processor_->MakeProxyRequest(kRequestUrl, &result));
- EXPECT_EQ("PROXY localhost:8080;PROXY localhost:8081;DIRECT", result);
- }
- TEST_F(AwPacProcessorTest, MakeProxyRequestDnsResolve) {
- EXPECT_TRUE(pac_processor_->SetProxyScript(kScriptDnsResolve));
- std::string result;
- EXPECT_TRUE(pac_processor_->MakeProxyRequest(kRequestUrl, &result));
- EXPECT_EQ("PROXY 127.0.0.1:80", result);
- }
- TEST_F(AwPacProcessorTest, MultipleProxyRequest) {
- AwPacProcessor* other_pac_processor_ = new AwPacProcessor();
- EXPECT_TRUE(pac_processor_->SetProxyScript(kScript));
- EXPECT_TRUE(other_pac_processor_->SetProxyScript(kScriptDnsResolve));
- std::string result;
- EXPECT_TRUE(pac_processor_->MakeProxyRequest(kRequestUrl, &result));
- EXPECT_EQ("PROXY localhost:8080;PROXY localhost:8081;DIRECT", result);
- EXPECT_TRUE(other_pac_processor_->MakeProxyRequest(kRequestUrl, &result));
- EXPECT_EQ("PROXY 127.0.0.1:80", result);
- delete other_pac_processor_;
- }
- TEST_F(AwPacProcessorTest, UnparseableScript) {
- EXPECT_FALSE(pac_processor_->SetProxyScript(""));
- std::string result;
- EXPECT_FALSE(pac_processor_->MakeProxyRequest(kRequestUrl, &result));
- }
- } // namespace android_webview
|