1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- // Copyright (c) 2012 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 "ppapi/tests/test_printing.h"
- #include "ppapi/cpp/dev/printing_dev.h"
- #include "ppapi/cpp/instance.h"
- #include "ppapi/tests/testing_instance.h"
- namespace {
- bool g_callback_triggered;
- int32_t g_callback_result;
- PP_PrintSettings_Dev g_print_settings;
- } // namespace
- REGISTER_TEST_CASE(Printing);
- class TestPrinting_Dev : public pp::Printing_Dev {
- public:
- explicit TestPrinting_Dev(pp::Instance* instance) :
- pp::Printing_Dev(instance) {}
- virtual ~TestPrinting_Dev() {}
- virtual uint32_t QuerySupportedPrintOutputFormats() { return 0; }
- virtual int32_t PrintBegin(
- const PP_PrintSettings_Dev& print_settings) { return 0; }
- virtual pp::Resource PrintPages(
- const PP_PrintPageNumberRange_Dev* page_ranges,
- uint32_t page_range_count) {
- return pp::Resource();
- }
- virtual void PrintEnd() {}
- virtual bool IsPrintScalingDisabled() { return false; }
- };
- TestPrinting::TestPrinting(TestingInstance* instance)
- : TestCase(instance),
- nested_event_(instance->pp_instance()) {
- callback_factory_.Initialize(this);
- }
- void TestPrinting::RunTests(const std::string& filter) {
- RUN_TEST(GetDefaultPrintSettings, filter);
- }
- std::string TestPrinting::TestGetDefaultPrintSettings() {
- g_callback_triggered = false;
- TestPrinting_Dev test_printing(instance_);
- pp::CompletionCallbackWithOutput<PP_PrintSettings_Dev> cb =
- callback_factory_.NewCallbackWithOutput(&TestPrinting::Callback);
- test_printing.GetDefaultPrintSettings(cb);
- nested_event_.Wait();
- ASSERT_EQ(PP_OK, g_callback_result);
- ASSERT_TRUE(g_callback_triggered);
- // Sanity check the |printable_area|, |content_area| and |paper_size| members.
- // It is possible these values are outside these ranges but it shouldn't
- // happen in practice and probably means there is an error in computing
- // the default print settings. These values are in points.
- ASSERT_TRUE(g_print_settings.printable_area.point.x < 200);
- ASSERT_TRUE(g_print_settings.printable_area.point.y < 200);
- ASSERT_TRUE(g_print_settings.printable_area.size.width < 2000);
- ASSERT_TRUE(g_print_settings.printable_area.size.height < 2000);
- ASSERT_TRUE(g_print_settings.content_area.point.x < 200);
- ASSERT_TRUE(g_print_settings.content_area.point.y < 200);
- ASSERT_TRUE(g_print_settings.content_area.size.width < 2000);
- ASSERT_TRUE(g_print_settings.content_area.size.height< 2000);
- ASSERT_TRUE(g_print_settings.paper_size.width < 2000);
- ASSERT_TRUE(g_print_settings.paper_size.height < 2000);
- PASS();
- }
- void TestPrinting::Callback(int32_t result,
- PP_PrintSettings_Dev& print_settings) {
- g_callback_triggered = true;
- g_callback_result = result;
- g_print_settings = print_settings;
- nested_event_.Signal();
- }
|