// 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 <string>
#include "chrome_frame/test/chrome_frame_test_utils.h"
#include "chrome_frame/test/mock_ie_event_sink_actions.h"
#include "chrome_frame/test/mock_ie_event_sink_test.h"
using testing::_;
using testing::StrEq;
namespace chrome_frame_test {
// Test fixture for compatibility/reliability tests.
class ChromeFrameSitesTest
: public MockIEEventSinkTest,
public testing::TestWithParam<std::wstring> {
public:
ChromeFrameSitesTest() {}
virtual void SetUp() {
// Permit navigation in both IE and CF.
ie_mock_.ExpectAnyNavigations();
}
};
INSTANTIATE_TEST_CASE_P(CF, ChromeFrameSitesTest,
testing::Values(L"http://www.meebo.com/",
L"http://www.vimeo.com/",
L"http://wordpress.com/",
L"https://github.com/"));
// Test for navigating to a site that has a CF metatag.
TEST_P(ChromeFrameSitesTest, LoadSite) {
// Print name of site for debugging purposes.
std::wcout << L"Navigating to site: " << GetParam() << std::endl;
// Verify navigation to the url passed in as parameter.
EXPECT_CALL(ie_mock_, OnLoad(IN_CF, StrEq(GetParam())))
.WillOnce(testing::DoAll(
VerifyAddressBarUrl(&ie_mock_),
CloseBrowserMock(&ie_mock_)));
LaunchIENavigateAndLoop(GetParam(), kChromeFrameLongNavigationTimeout * 2);
}
} // namespace chrome_frame_test