summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc')
-rw-r--r--chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc53
1 files changed, 43 insertions, 10 deletions
diff --git a/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc b/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc
index 7e4bffcd685..bc7888c8133 100644
--- a/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc
+++ b/chromium/chrome/browser/ui/webui/print_preview/print_preview_handler_unittest.cc
@@ -10,18 +10,24 @@
#include "base/base64.h"
#include "base/containers/flat_set.h"
+#include "base/json/json_reader.h"
#include "base/json/json_writer.h"
#include "base/memory/ref_counted_memory.h"
+#include "base/optional.h"
#include "base/strings/string16.h"
#include "base/strings/utf_string_conversions.h"
#include "base/test/icu_test_util.h"
#include "base/values.h"
#include "chrome/browser/printing/print_test_utils.h"
#include "chrome/browser/printing/print_view_manager.h"
+#include "chrome/browser/ui/webui/print_preview/policy_settings.h"
#include "chrome/browser/ui/webui/print_preview/print_preview_ui.h"
#include "chrome/browser/ui/webui/print_preview/printer_handler.h"
+#include "chrome/common/pref_names.h"
#include "chrome/test/base/testing_profile.h"
+#include "components/prefs/pref_service.h"
#include "components/printing/common/print_messages.h"
+#include "components/sync_preferences/testing_pref_service_syncable.h"
#include "content/public/browser/render_frame_host.h"
#include "content/public/browser/web_contents.h"
#include "content/public/browser/web_ui_controller.h"
@@ -318,14 +324,16 @@ class PrintPreviewHandlerTest : public testing::Test {
// Validates the initial settings structure in the response matches the
// print_preview.NativeInitialSettings type in
- // chrome/browser/resources/print_preview/native_layer.js. Checks that
- // |default_printer_name| is the printer name returned and that
- // |initiator_title| is the initiator title returned and validates that
- // delimeters are correct for "en" locale (set in Initialize()). Assumes
- // "test-callback-id-0" was used as the callback id.
+ // chrome/browser/resources/print_preview/native_layer.js. Checks that:
+ // - |default_printer_name| is the printer name returned
+ // - |initiator_title| is the initiator title returned
+ // - |expected_header_footer| is the header/footer state returned, if any
+ // Also validates that delimeters are correct for "en" locale (set in
+ // Initialize()). Assumes "test-callback-id-0" was used as the callback id.
void ValidateInitialSettings(const content::TestWebUI::CallData& data,
const std::string& default_printer_name,
- const std::string& initiator_title) {
+ const std::string& initiator_title,
+ base::Optional<bool> expected_header_footer) {
CheckWebUIResponse(data, "test-callback-id-0", true);
const base::Value* settings = data.arg3();
ASSERT_TRUE(settings->FindKeyOfType("isInKioskAutoPrintMode",
@@ -358,6 +366,12 @@ class PrintPreviewHandlerTest : public testing::Test {
settings->FindKeyOfType("printerName", base::Value::Type::STRING);
ASSERT_TRUE(printer);
EXPECT_EQ(default_printer_name, printer->GetString());
+
+ const base::Value* header_footer =
+ settings->FindKeyOfType("headerFooter", base::Value::Type::BOOLEAN);
+ EXPECT_EQ(bool(expected_header_footer), bool(header_footer));
+ if (expected_header_footer)
+ EXPECT_EQ(*expected_header_footer, header_footer->GetBool());
}
IPC::TestSink& initiator_sink() {
@@ -385,6 +399,7 @@ class PrintPreviewHandlerTest : public testing::Test {
}
const Profile* profile() { return profile_.get(); }
+ PrefService* prefs() { return profile_->GetPrefs(); }
content::TestWebUI* web_ui() { return web_ui_.get(); }
printing::TestPrintPreviewHandler* handler() { return handler_; }
printing::TestPrinterHandler* printer_handler() { return printer_handler_; }
@@ -404,18 +419,36 @@ class PrintPreviewHandlerTest : public testing::Test {
DISALLOW_COPY_AND_ASSIGN(PrintPreviewHandlerTest);
};
-TEST_F(PrintPreviewHandlerTest, InitialSettings) {
+TEST_F(PrintPreviewHandlerTest, InitialSettingsSimple) {
Initialize();
// Verify initial settings were sent.
ValidateInitialSettings(*web_ui()->call_data().back(),
printing::kDummyPrinterName,
- printing::kDummyInitiatorName);
+ printing::kDummyInitiatorName, base::nullopt);
// Check that the use-cloud-print event got sent
AssertWebUIEventFired(*web_ui()->call_data().front(), "use-cloud-print");
}
+TEST_F(PrintPreviewHandlerTest, InitialSettingsEnableHeaderFooter) {
+ // Set a pref that should take priority over StickySettings.
+ prefs()->SetBoolean(prefs::kPrintHeaderFooter, true);
+ Initialize();
+ ValidateInitialSettings(
+ *web_ui()->call_data().back(), printing::kDummyPrinterName,
+ printing::kDummyInitiatorName, base::Optional<bool>(true));
+}
+
+TEST_F(PrintPreviewHandlerTest, InitialSettingsDisableHeaderFooter) {
+ // Set a pref that should take priority over StickySettings.
+ prefs()->SetBoolean(prefs::kPrintHeaderFooter, false);
+ Initialize();
+ ValidateInitialSettings(
+ *web_ui()->call_data().back(), printing::kDummyPrinterName,
+ printing::kDummyInitiatorName, base::Optional<bool>(false));
+}
+
TEST_F(PrintPreviewHandlerTest, GetPrinters) {
Initialize();
@@ -636,7 +669,7 @@ TEST_F(PrintPreviewHandlerTest, SendPreviewUpdates) {
AssertWebUIEventFired(*web_ui()->call_data().back(), "page-layout-ready");
// 1 page document. Modifiable so send default 100 scaling.
- handler()->SendPageCountReady(1, preview_request_id, 100);
+ handler()->SendPageCountReady(1, 100, preview_request_id);
AssertWebUIEventFired(*web_ui()->call_data().back(), "page-count-ready");
// Page at index 0 is ready.
@@ -656,7 +689,7 @@ TEST_F(PrintPreviewHandlerTest, SendPreviewUpdates) {
handler()->SendPageLayoutReady(base::DictionaryValue(), false,
preview_request_id);
EXPECT_EQ(message_count, web_ui()->call_data().size());
- handler()->SendPageCountReady(1, 0, -1);
+ handler()->SendPageCountReady(1, -1, 0);
EXPECT_EQ(message_count, web_ui()->call_data().size());
handler()->OnPrintPreviewReady(0, 0);
EXPECT_EQ(message_count, web_ui()->call_data().size());