blob: 5ebec6246e422a1d684e9b6a630b1a1d381368fc [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/test/bind.h"
#include "chrome/browser/browsing_data/cookies_tree_model.h"
#include "chrome/browser/ui/browser.h"
#include "chrome/browser/ui/browser_element_identifiers.h"
#include "chrome/browser/ui/browser_window.h"
#include "chrome/browser/ui/views/collected_cookies_views.h"
#include "chrome/browser/ui/views/page_info/page_info_main_view.h"
#include "chrome/test/interaction/interactive_browser_test.h"
#include "components/page_info/core/features.h"
#include "content/public/test/browser_test.h"
#include "net/dns/mock_host_resolver.h"
#include "ui/views/controls/tree/tree_view.h"
#include "ui/views/view_utils.h"
class CollectedCookiesViewInteractiveUiTest : public InteractiveBrowserTest {
public:
CollectedCookiesViewInteractiveUiTest() {
// TODO(crbug.com/1344787): Clean up when PageSpecificSiteDataDialog is
// launched. Disable features for the new version of "Cookies in use"
// dialog. These tests are for the current version of the dialog only.
feature_list_.InitWithFeatures({}, {page_info::kPageSpecificSiteDataDialog,
page_info::kPageInfoCookiesSubpage});
}
~CollectedCookiesViewInteractiveUiTest() override = default;
void SetUp() override {
set_open_about_blank_on_browser_launch(true);
ASSERT_TRUE(embedded_test_server()->InitializeAndListen());
InteractiveBrowserTest::SetUp();
}
void SetUpOnMainThread() override {
InteractiveBrowserTest::SetUpOnMainThread();
host_resolver()->AddRule("*", "127.0.0.1");
content::SetupCrossSiteRedirector(embedded_test_server());
embedded_test_server()->StartAcceptingConnections();
}
void TearDownOnMainThread() override {
EXPECT_TRUE(embedded_test_server()->ShutdownAndWaitUntilComplete());
InteractiveBrowserTest::TearDownOnMainThread();
}
private:
base::test::ScopedFeatureList feature_list_;
};
IN_PROC_BROWSER_TEST_F(CollectedCookiesViewInteractiveUiTest,
// TODO(crbug.com/1417914): Re-enable this test
DISABLED_CheckCookiesAreBlockedInIncognitoWindow) {
const GURL third_party_cookie_page_url =
embedded_test_server()->GetURL("a.com", "/third_party_cookie.html");
Browser* incognito_browser = CreateIncognitoBrowser();
DEFINE_LOCAL_ELEMENT_IDENTIFIER_VALUE(kWebPageElementId);
RunTestSequenceInContext(
incognito_browser->window()->GetElementContext(),
InstrumentTab(kWebPageElementId),
NavigateWebContents(kWebPageElementId, third_party_cookie_page_url),
PressButton(kLocationIconElementId),
PressButton(PageInfoMainView::kCookieButtonElementId),
// Select "blocked" tab.
InAnyContext(SelectTab(CollectedCookiesViews::kTabbedPaneElementId, 1)),
InAnyContext(AfterShow(
CollectedCookiesViews::kBlockedCookiesTreeElementId,
base::BindLambdaForTesting([&](ui::TrackedElement* element) {
auto* blocked_cookies_tree = AsView<views::TreeView>(element);
ASSERT_EQ(1u, blocked_cookies_tree->GetRowCount());
auto* model = blocked_cookies_tree->model();
auto nodes = model->GetChildren(model->GetRoot());
ASSERT_EQ(1u, nodes.size());
ASSERT_EQ("http://b.com", static_cast<CookieTreeNode*>(nodes[0])
->GetDetailedInfo()
.origin.Serialize());
}))));
}