| Index: chrome_frame/test/header_test.cc
|
| diff --git a/chrome_frame/test/header_test.cc b/chrome_frame/test/header_test.cc
|
| deleted file mode 100644
|
| index 815dadc9bd6a2630415eef582f11966277e252d4..0000000000000000000000000000000000000000
|
| --- a/chrome_frame/test/header_test.cc
|
| +++ /dev/null
|
| @@ -1,187 +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.
|
| -
|
| -#include "chrome_frame/test/mock_ie_event_sink_actions.h"
|
| -#include "chrome_frame/test/mock_ie_event_sink_test.h"
|
| -#include "base/rand_util.h"
|
| -
|
| -namespace chrome_frame_test {
|
| -
|
| -class TestData {
|
| - public:
|
| - TestData(const std::string& value, bool in_header, LoadedInRenderer expected)
|
| - : value_(value),
|
| - in_header_(in_header),
|
| - expected_(expected),
|
| - name_(base::IntToString(base::RandInt(0, 1000))) {
|
| - }
|
| -
|
| - LoadedInRenderer GetExpectedRenderer() const {
|
| - return expected_;
|
| - }
|
| -
|
| - std::wstring GetPath() const {
|
| - return base::ASCIIToWide("/" + name_);
|
| - }
|
| -
|
| - std::wstring GetUrl(MockWebServer* server_mock) const {
|
| - return server_mock->Resolve(base::ASCIIToWide(name_));
|
| - }
|
| -
|
| - void ExpectOnServer(MockWebServer* server_mock) const {
|
| - EXPECT_CALL(*server_mock, Get(testing::_, GetPath(), testing::_))
|
| - .Times(testing::AnyNumber())
|
| - .WillRepeatedly(SendFast(GetHeaders(), GetHtml()));
|
| - }
|
| -
|
| - std::string GetHeaders() const {
|
| - std::ostringstream headers;
|
| - headers << "HTTP/1.1 200 OK\r\n"
|
| - << "Connection: close\r\n"
|
| - << "Content-Type: text/html\r\n"
|
| - << "Cache-Control: no-cache\r\n";
|
| - if (in_header_) {
|
| - headers << "X-UA-COMPATIBLE: " << value_ << "\r\n";
|
| - }
|
| - return headers.str();
|
| - }
|
| -
|
| - std::string GetHtml() const {
|
| - std::ostringstream html;
|
| - html << "<html><head>";
|
| - if (!in_header_) {
|
| - html << "<meta http-equiv=\"x-ua-compatible\" content=\"" << value_
|
| - << "\" />";
|
| - }
|
| - html << "</head><body>This is some text.</body></html>";
|
| - return html.str();
|
| - }
|
| -
|
| - private:
|
| - LoadedInRenderer expected_;
|
| - std::string name_;
|
| - std::string value_;
|
| - bool in_header_;
|
| -};
|
| -
|
| -// Determines the major version of the installed IE
|
| -// Returns -1 in case of failure, 0 if the version is newer than currently known
|
| -int GetIEMajorVersion() {
|
| - switch (GetInstalledIEVersion()) {
|
| - case IE_6:
|
| - return 6;
|
| - case IE_7:
|
| - return 7;
|
| - case IE_8:
|
| - return 8;
|
| - case IE_9:
|
| - return 9;
|
| - case IE_10:
|
| - return 10;
|
| - case IE_INVALID:
|
| - case NON_IE:
|
| - case IE_UNSUPPORTED:
|
| - ADD_FAILURE() << "Failed to detect IE version.";
|
| - return -1;
|
| - default:
|
| - return 0;
|
| - }
|
| -}
|
| -
|
| -int LowVersion() {
|
| - int ie_version = GetIEMajorVersion();
|
| - switch (ie_version) {
|
| - case -1:
|
| - case 0:
|
| - return 5;
|
| - default:
|
| - return ie_version - 1;
|
| - }
|
| -}
|
| -
|
| -int HighVersion() {
|
| - int ie_version = GetIEMajorVersion();
|
| - switch (ie_version) {
|
| - case -1:
|
| - case 0:
|
| - return 1000;
|
| - default:
|
| - return ie_version + 1;
|
| - }
|
| -}
|
| -
|
| -int EqualVersion() {
|
| - int ie_version = GetIEMajorVersion();
|
| - switch (ie_version) {
|
| - case -1:
|
| - case 0:
|
| - return 1000;
|
| - default:
|
| - return ie_version;
|
| - }
|
| -}
|
| -
|
| -std::string HeaderValue(int ie_version) {
|
| - if (ie_version == -1) {
|
| - return "IE=8; Chrome=1";
|
| - } else {
|
| - return std::string("IE=8; Chrome=IE") + base::IntToString(ie_version);
|
| - }
|
| -}
|
| -
|
| -std::string CorruptHeaderValue(int ie_version) {
|
| - return HeaderValue(ie_version) + ".0";
|
| -}
|
| -
|
| -std::string LongHeaderValue(int ie_version) {
|
| - std::string long_value = HeaderValue(ie_version) + "; " +
|
| - std::string(256, 'a') + "=bbb";
|
| - DCHECK_GT(long_value.length(), 256u);
|
| - DCHECK_LT(long_value.length(), 512u);
|
| - return long_value;
|
| -}
|
| -
|
| -class HeaderTest
|
| - : public MockIEEventSinkTest,
|
| - public testing::TestWithParam<TestData> {
|
| - public:
|
| - HeaderTest() {}
|
| -};
|
| -
|
| -INSTANTIATE_TEST_CASE_P(MetaTag, HeaderTest, testing::Values(
|
| - TestData(HeaderValue(LowVersion()), false, IN_IE),
|
| - TestData(HeaderValue(EqualVersion()), false, IN_CF),
|
| - TestData(HeaderValue(HighVersion()), false, IN_CF),
|
| - TestData(LongHeaderValue(LowVersion()), false, IN_IE),
|
| - TestData(LongHeaderValue(EqualVersion()), false, IN_CF),
|
| - TestData(LongHeaderValue(HighVersion()), false, IN_CF)));
|
| -INSTANTIATE_TEST_CASE_P(HttpHeader, HeaderTest, testing::Values(
|
| - TestData(HeaderValue(LowVersion()), true, IN_IE),
|
| - TestData(HeaderValue(EqualVersion()), true, IN_CF),
|
| - TestData(HeaderValue(HighVersion()), true, IN_CF),
|
| - TestData(LongHeaderValue(LowVersion()), true, IN_IE),
|
| - TestData(LongHeaderValue(EqualVersion()), true, IN_CF),
|
| - TestData(LongHeaderValue(HighVersion()), true, IN_CF)));
|
| -INSTANTIATE_TEST_CASE_P(CorruptValueHeader, HeaderTest, testing::Values(
|
| - TestData(CorruptHeaderValue(LowVersion()), true, IN_IE),
|
| - TestData(CorruptHeaderValue(EqualVersion()), true, IN_IE),
|
| - TestData(CorruptHeaderValue(HighVersion()), true, IN_IE),
|
| - TestData(CorruptHeaderValue(LowVersion()), false, IN_IE),
|
| - TestData(CorruptHeaderValue(EqualVersion()), false, IN_IE),
|
| - TestData(CorruptHeaderValue(HighVersion()), false, IN_IE)));
|
| -
|
| -TEST_P(HeaderTest, HandleXUaCompatibleHeader) {
|
| - std::wstring url = GetParam().GetUrl(&server_mock_);
|
| - LoadedInRenderer expected_renderer = GetParam().GetExpectedRenderer();
|
| -
|
| - GetParam().ExpectOnServer(&server_mock_);
|
| - ie_mock_.ExpectNavigation(expected_renderer, url);
|
| -
|
| - EXPECT_CALL(ie_mock_, OnLoad(expected_renderer, testing::StrEq(url)))
|
| - .WillOnce(CloseBrowserMock(&ie_mock_));
|
| -
|
| - LaunchIEAndNavigate(url);
|
| -}
|
| -
|
| -} // namespace chrome_frame_test
|
|
|