diff options
author | stoyan@chromium.org <stoyan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-24 17:29:22 +0000 |
---|---|---|
committer | stoyan@chromium.org <stoyan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-03-24 17:29:22 +0000 |
commit | 7c712c995e0024a0d4efe2da62007d87c457b1d0 (patch) | |
tree | cdcd6605ad47c9c71d87ee8c185b80b84245ce2a /chrome_frame/test | |
parent | 3d23353462277ab1cae323570207f5211a7dfe5d (diff) | |
download | chromium_src-7c712c995e0024a0d4efe2da62007d87c457b1d0.zip chromium_src-7c712c995e0024a0d4efe2da62007d87c457b1d0.tar.gz chromium_src-7c712c995e0024a0d4efe2da62007d87c457b1d0.tar.bz2 |
Make (&CGID_Explorer, SBCMDID_MIXEDZONE) command more sane.
Add test for navigation to sites in restricted sites zone.
Review URL: http://codereview.chromium.org/1217001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@42484 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/test')
-rw-r--r-- | chrome_frame/test/test_mock_with_web_server.cc | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/chrome_frame/test/test_mock_with_web_server.cc b/chrome_frame/test/test_mock_with_web_server.cc index 519cd00..a2bd962 100644 --- a/chrome_frame/test/test_mock_with_web_server.cc +++ b/chrome_frame/test/test_mock_with_web_server.cc @@ -1255,3 +1255,55 @@ TEST_F(ChromeFrameTestWithWebServer, loop.RunFor(kChromeFrameLongNavigationTimeoutInSeconds * 2); } +TEST(IEPrivacy, NavigationToRestrictedSite) { + CloseIeAtEndOfScope last_resort_close_ie; + chrome_frame_test::TimedMsgLoop loop; + ComStackObjectWithUninitialize<MockWebBrowserEventSink> mock; + ChromeFrameHTTPServer server; + server.SetUp(); + + ScopedComPtr<IInternetSecurityManager> security_manager; + HRESULT hr = security_manager.CreateInstance(CLSID_InternetSecurityManager); + ASSERT_HRESULT_SUCCEEDED(hr); + // Add localhost to restricted sites zone. + hr = security_manager->SetZoneMapping(URLZONE_UNTRUSTED, + L"http://localhost:1337", SZM_CREATE); + + EXPECT_CALL(mock, OnFileDownload(VARIANT_TRUE, _)) + .Times(testing::AnyNumber()); + + testing::InSequence s; + const wchar_t* url = L"http://localhost:1337/files/meta_tag.html"; + EXPECT_CALL(mock, OnBeforeNavigate2(_, + testing::Field(&VARIANT::bstrVal, + testing::StrCaseEq(url)), _, _, _, _, _)).Times(1); + + EXPECT_CALL(mock, OnNavigateComplete2(_, + testing::Field(&VARIANT::bstrVal, testing::StrCaseEq(url)))).Times(1); + + EXPECT_CALL(mock, OnBeforeNavigate2(_, + testing::Field(&VARIANT::bstrVal, + testing::StrCaseEq(url)), _, _, _, _, _)).Times(1); + + EXPECT_CALL(mock, OnBeforeNavigate2(_, + testing::Field(&VARIANT::bstrVal, + testing::StartsWith(L"res://")), _, _, _, _, _)).Times(1); + + EXPECT_CALL(mock, OnNavigateComplete2(_, + testing::Field(&VARIANT::bstrVal, testing::StrCaseEq(url)))) + .Times(1).WillOnce(CloseBrowserMock(&mock)); + + EXPECT_CALL(mock, OnQuit()).WillOnce(QUIT_LOOP(loop)); + + EXPECT_CALL(mock, OnLoad(_)).Times(0); + + hr = mock.LaunchIEAndNavigate(url); + ASSERT_HRESULT_SUCCEEDED(hr); + if (hr == S_OK) { + ASSERT_TRUE(mock.web_browser2() != NULL); + loop.RunFor(kChromeFrameLongNavigationTimeoutInSeconds * 2); + } + + ASSERT_HRESULT_SUCCEEDED(security_manager->SetZoneMapping(URLZONE_UNTRUSTED, + L"http://localhost:1337", SZM_DELETE)); +} |