Index: chrome/browser/dom_ui/print_preview_ui_uitest.cc |
=================================================================== |
--- chrome/browser/dom_ui/print_preview_ui_uitest.cc (revision 68080) |
+++ chrome/browser/dom_ui/print_preview_ui_uitest.cc (working copy) |
@@ -5,6 +5,7 @@ |
#include "app/l10n_util.h" |
#include "base/string16.h" |
#include "base/utf_string_conversions.h" |
+#include "chrome/app/chrome_command_ids.h" |
#include "chrome/common/chrome_switches.h" |
#include "chrome/common/url_constants.h" |
#include "chrome/test/automation/browser_proxy.h" |
@@ -24,6 +25,14 @@ |
} |
void AssertIsPrintPage(TabProxy* tab) { |
+ // Wait for '#mainview' to become visible to make sure the document is |
+ // mostly loaded. Otherwise GetTabTitle() below is flaky. |
+ scoped_refptr<DOMElementProxy> dom(tab->GetDOMDocument()); |
+ ASSERT_TRUE(dom.get()); |
+ scoped_refptr<DOMElementProxy> mainview = dom->WaitFor1VisibleElement( |
+ DOMElementProxy::By::Selectors("#mainview")); |
+ ASSERT_TRUE(mainview.get()); |
+ |
std::wstring title; |
ASSERT_TRUE(tab->GetTabTitle(&title)); |
string16 expected_title = |
@@ -46,4 +55,29 @@ |
AssertIsPrintPage(tab); |
} |
+TEST_F(PrintPreviewUITest, PrintCommandDisabled) { |
+ scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0)); |
+ ASSERT_TRUE(browser.get()); |
+ |
+ // Go to the about:blank page. |
+ NavigateToURL(GURL(chrome::kAboutBlankURL)); |
+ |
+ // Make sure there is 1 tab and print is enabled. Create print preview tab. |
+ int tab_count; |
+ ASSERT_TRUE(browser->GetTabCount(&tab_count)); |
+ ASSERT_EQ(1, tab_count); |
+ bool enabled; |
+ ASSERT_TRUE(browser->IsMenuCommandEnabled(IDC_PRINT, &enabled)); |
+ ASSERT_TRUE(enabled); |
+ ASSERT_TRUE(browser->RunCommandAsync(IDC_PRINT)); |
+ |
+ // Make sure there are 2 tabs and print is disabled. |
+ WaitUntilTabCount(2); |
+ scoped_refptr<TabProxy> tab = browser->GetActiveTab(); |
+ ASSERT_TRUE(tab.get()); |
+ AssertIsPrintPage(tab); |
+ ASSERT_TRUE(browser->IsMenuCommandEnabled(IDC_PRINT, &enabled)); |
+ ASSERT_FALSE(enabled); |
+} |
+ |
} // namespace |