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

Unified Diff: chrome/browser/ui/webui/print_preview/hidden_web_contents_unittest.cc

Issue 1125343004: Add a "Simplify Page" option to the print preview dialog (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update AUTHORS file to reflect the correct HP name used in the CLA Created 5 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
Index: chrome/browser/ui/webui/print_preview/hidden_web_contents_unittest.cc
diff --git a/chrome/browser/ui/webui/print_preview/hidden_web_contents_unittest.cc b/chrome/browser/ui/webui/print_preview/hidden_web_contents_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..9a53acf1d127359641b263d4bb57a5f94915c5c6
--- /dev/null
+++ b/chrome/browser/ui/webui/print_preview/hidden_web_contents_unittest.cc
@@ -0,0 +1,170 @@
+// Copyright (c) 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include <string>
+#include <vector>
+
+#include "chrome/browser/printing/print_preview_test.h"
+#include "chrome/browser/ui/browser_commands.h"
+#include "chrome/browser/ui/tabs/tab_strip_model.h"
+#include "chrome/browser/ui/webui/print_preview/hidden_web_contents.h"
+#include "chrome/test/base/browser_with_test_window_test.h"
+
+using content::WebContents;
+
+class TestingObserver : public HiddenWebContents::Observer {
+ public:
+ TestingObserver() :
+ failed_(false) {}
+ ~TestingObserver() override {}
+
+ void OnFail(HiddenWebContents* contents) override {
+ failed_ = true;
+ }
+
+ void OnFinishedLoad(HiddenWebContents* contents) override {
+ }
+
+ bool failed() { return failed_; }
+
+ void Reset() {
+ failed_ = false;
+ }
+
+ private:
+ bool failed_;
+};
+
+class HiddenWebContentsUnitTest : public PrintPreviewTest {
+ public:
+ HiddenWebContentsUnitTest();
+ ~HiddenWebContentsUnitTest() override;
+
+ HiddenWebContents* CreateHiddenWebContentsForURL(GURL, TestingObserver&);
+
+ protected:
+ void SetUp() override;
+ private:
+ DISALLOW_COPY_AND_ASSIGN(HiddenWebContentsUnitTest);
+};
+
+HiddenWebContentsUnitTest::HiddenWebContentsUnitTest() {}
+HiddenWebContentsUnitTest::~HiddenWebContentsUnitTest() {}
+
+HiddenWebContents* HiddenWebContentsUnitTest::CreateHiddenWebContentsForURL(
+ GURL url, TestingObserver& observer) {
+
+ WebContents* initiator = browser()->tab_strip_model()->GetActiveWebContents();
+ Profile* profile =
+ Profile::FromBrowserContext(initiator->GetBrowserContext());
+
+ HiddenWebContents* hidden_web_contents = new HiddenWebContents(profile, url);
+ hidden_web_contents->AddObserver(&observer);
+
+ content::SessionStorageNamespace* session_storage_namespace =
+ initiator->GetController().GetDefaultSessionStorageNamespace();
+ hidden_web_contents->StartRendering(
+ gfx::Size(1, 1), session_storage_namespace);
+ return hidden_web_contents;
+}
+
+void HiddenWebContentsUnitTest::SetUp() {
+ PrintPreviewTest::SetUp();
+
+ chrome::NewTab(browser());
+}
+
+TEST_F(HiddenWebContentsUnitTest, ValidURL) {
+ TestingObserver observer;
+ scoped_ptr<HiddenWebContents> hidden_web_contents(
+ CreateHiddenWebContentsForURL(GURL("http://google.com"), observer));
+ ASSERT_TRUE(observer.failed());
+
+ hidden_web_contents->RemoveObserver(&observer);
+ observer.Reset();
+
+ hidden_web_contents.reset(
+ CreateHiddenWebContentsForURL(
+ GURL("chrome-distiller://fake/url"), observer));
+ ASSERT_FALSE(observer.failed());
+ hidden_web_contents->RemoveObserver(&observer);
+}
+
+static void DownloadCallback(bool should_continue) {
+ ASSERT_FALSE(should_continue);
+}
+
+TEST_F(HiddenWebContentsUnitTest, ContentFailures) {
+ TestingObserver observer;
+ scoped_ptr<HiddenWebContents> hidden_web_contents(
+ CreateHiddenWebContentsForURL(
+ GURL("chrome-distiller://fake/url"), observer));
+
+ content::OpenURLParams params(GURL(), content::Referrer(),
+ CURRENT_TAB, ui::PAGE_TRANSITION_AUTO_TOPLEVEL,
+ true /* is_renderer_initiated */);
+ WebContents* result_contents =
+ hidden_web_contents->web_contents()->GetDelegate()->OpenURLFromTab(
+ NULL, params);
+ ASSERT_TRUE(observer.failed());
+ ASSERT_EQ(NULL, result_contents);
+
+ hidden_web_contents->RemoveObserver(&observer);
+ observer.Reset();
+ hidden_web_contents.reset(
+ CreateHiddenWebContentsForURL(
+ GURL("chrome-distiller://fake/url"), observer));
+
+ hidden_web_contents->web_contents()->GetDelegate()->CloseContents(NULL);
+ ASSERT_TRUE(observer.failed());
+
+ hidden_web_contents->RemoveObserver(&observer);
+ observer.Reset();
+ hidden_web_contents.reset(
+ CreateHiddenWebContentsForURL(
+ GURL("chrome-distiller://fake/url"), observer));
+
+ hidden_web_contents->web_contents()->GetDelegate()->CanDownload(
+ NULL, GURL(), std::string(), base::Bind(&DownloadCallback));
+ ASSERT_TRUE(observer.failed());
+
+ hidden_web_contents->RemoveObserver(&observer);
+ observer.Reset();
+ hidden_web_contents.reset(
+ CreateHiddenWebContentsForURL(
+ GURL("chrome-distiller://fake/url"), observer));
+
+ bool result =
+ hidden_web_contents->web_contents()->
+ GetDelegate()->ShouldCreateWebContents(
+ NULL, 0, 0, WINDOW_CONTAINER_TYPE_NORMAL,
+ base::string16(), GURL(), std::string(), NULL);
+ ASSERT_TRUE(observer.failed());
+ ASSERT_FALSE(result);
+
+ hidden_web_contents->RemoveObserver(&observer);
+ observer.Reset();
+ hidden_web_contents.reset(
+ CreateHiddenWebContentsForURL(
+ GURL("chrome-distiller://fake/url"), observer));
+
+ result =
+ hidden_web_contents->web_contents()->GetDelegate()->ShouldSuppressDialogs(
+ NULL);
+ ASSERT_TRUE(observer.failed());
+ ASSERT_TRUE(result);
+
+ hidden_web_contents->RemoveObserver(&observer);
+ observer.Reset();
+ hidden_web_contents.reset(
+ CreateHiddenWebContentsForURL(
+ GURL("chrome-distiller://fake/url"), observer));
+ ASSERT_FALSE(observer.failed());
+
+ hidden_web_contents->web_contents()->GetDelegate()->RegisterProtocolHandler(
+ NULL, std::string(), GURL(), false);
+ ASSERT_TRUE(observer.failed());
+
+ hidden_web_contents->RemoveObserver(&observer);
+}

Powered by Google App Engine
This is Rietveld 408576698