Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(596)

Unified Diff: ui/wm/core/window_util_unittest.cc

Issue 2854543002: Block incognito browser windows for voice interaction. (Closed)
Patch Set: address review comments Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/wm/core/window_util.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/wm/core/window_util_unittest.cc
diff --git a/ui/wm/core/window_util_unittest.cc b/ui/wm/core/window_util_unittest.cc
index 4a7fedb1af7aa45c7b7e9b9168341383b349a764..10de1caa0997b33458924bd36ef8fd8db6639659 100644
--- a/ui/wm/core/window_util_unittest.cc
+++ b/ui/wm/core/window_util_unittest.cc
@@ -6,6 +6,7 @@
#include <memory>
+#include "base/bind.h"
#include "ui/aura/test/aura_test_base.h"
#include "ui/aura/test/test_windows.h"
#include "ui/aura/window.h"
@@ -50,4 +51,52 @@ TEST_F(WindowUtilTest, RecreateLayers) {
window11.reset();
}
+// Test if map_func is correctly executed in RecreateLayerWithClosure.
+TEST_F(WindowUtilTest, RecreateLayersWithClosure) {
+ std::unique_ptr<aura::Window> window1(
+ aura::test::CreateTestWindowWithId(0, NULL));
+ std::unique_ptr<aura::Window> window11(
+ aura::test::CreateTestWindowWithId(1, window1.get()));
+ std::unique_ptr<aura::Window> window12(
+ aura::test::CreateTestWindowWithId(2, window1.get()));
+
+ ASSERT_EQ(2u, window1->layer()->children().size());
+
+ auto tree_empty = wm::RecreateLayersWithClosure(
+ window1.get(),
+ base::BindRepeating(
+ [](const aura::Window* to_filter,
+ ui::LayerOwner* owner) -> std::unique_ptr<ui::Layer> {
+ if (owner->layer() == to_filter->layer())
+ return nullptr;
+ return owner->RecreateLayer();
+ },
+ window1.get()));
+
+ // The root is filtered. RecreateLayersWithClosure should return nullptr.
+ ASSERT_FALSE(tree_empty);
+
+ auto tree = wm::RecreateLayersWithClosure(
+ window1.get(),
+ base::BindRepeating(
+ [](const aura::Window* to_filter,
+ ui::LayerOwner* owner) -> std::unique_ptr<ui::Layer> {
+ if (owner->layer() == to_filter->layer())
+ return nullptr;
+ return owner->RecreateLayer();
+ },
+ window12.get()));
+
+ ASSERT_TRUE(tree);
+ // window12 is filtered out in the above recreation logic.
+ ASSERT_EQ(1u, tree->root()->children().size());
+ // Child layer is new instance.
+ EXPECT_NE(window11->layer(), tree->root()->children()[0]);
+
+ // The original window should have both.
+ ASSERT_EQ(2u, window1->layer()->children().size());
+ EXPECT_EQ(window11->layer(), window1->layer()->children()[0]);
+ EXPECT_EQ(window12->layer(), window1->layer()->children()[1]);
+}
+
} // namespace wm
« no previous file with comments | « ui/wm/core/window_util.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698