Chromium Code Reviews| Index: chrome/browser/ui/test/test_browser_dialog.cc |
| diff --git a/chrome/browser/ui/test/test_browser_dialog.cc b/chrome/browser/ui/test/test_browser_dialog.cc |
| index 75aff27f6ab391a12d30d0544041fe9b4b5f31e6..444af448a39dfdcb7f1352bead355014eb91e511 100644 |
| --- a/chrome/browser/ui/test/test_browser_dialog.cc |
| +++ b/chrome/browser/ui/test/test_browser_dialog.cc |
| @@ -6,6 +6,7 @@ |
| #include "base/command_line.h" |
| #include "base/message_loop/message_loop.h" |
| +#include "base/stl_util.h" |
| #include "base/test/gtest_util.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "chrome/browser/platform_util.h" |
| @@ -111,6 +112,14 @@ void TestBrowserDialog::RunDialog() { |
| auto added = base::STLSetDifference<std::vector<views::Widget*>>( |
| widgets_after, widgets_before); |
| + if (added.size() > 1) { |
| + // Some tests create a standalone window to anchor a dialog. In those cases, |
| + // ignore added Widgets that are not dialogs. |
| + base::EraseIf(added, [](views::Widget* widget) { |
|
Peter Kasting
2017/03/10 08:29:54
Nice use of this API that just went in! I think y
|
| + return !widget->widget_delegate()->AsDialogDelegate(); |
| + }); |
| + } |
| + |
| // This can fail if no dialog was shown, if the dialog shown wasn't a toolkit- |
| // views dialog, or if more than one child dialog was shown. |
| ASSERT_EQ(1u, added.size()); |