// Copyright (c) 2006-2008 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. #ifndef PRINTING_PRINTING_TEST_H_ #define PRINTING_PRINTING_TEST_H_ #include #include #include // Disable the whole test case when executing on a computer that has no printer // installed. // Note: Parent should be testing::Test or InProcessBrowserTest. template class PrintingTest : public Parent { public: static bool IsTestCaseDisabled() { return GetDefaultPrinter().empty(); } static std::wstring GetDefaultPrinter() { wchar_t printer_name[MAX_PATH]; DWORD size = std::size(printer_name); BOOL result = ::GetDefaultPrinter(printer_name, &size); if (result == 0) { if (GetLastError() == ERROR_FILE_NOT_FOUND) { printf("There is no printer installed, printing can't be tested!\n"); return std::wstring(); } printf("INTERNAL PRINTER ERROR!\n"); return std::wstring(); } return printer_name; } }; #endif // PRINTING_PRINTING_TEST_H_