blob: 1ade36b73633643d21fb10ee71d1adf9255c7019 [file] [log] [blame]
license.botbf09a502008-08-24 00:55:551// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
initial.commit09911bf2008-07-26 23:55:294
5#ifndef CHROME_BROWSER_PRINTING_PRINTING_TEST_H__
6#define CHROME_BROWSER_PRINTING_PRINTING_TEST_H__
7
8#include <windows.h>
9#include <winspool.h>
10
11// Disable the whole test case when executing on a computer that has no printer
12// installed.
13// Note: Parent should be testing::Test or UITest.
14template<typename Parent>
15class PrintingTest : public Parent {
16 public:
17 static bool IsTestCaseDisabled() {
18 return GetDefaultPrinter().empty();
19 }
20 static std::wstring GetDefaultPrinter() {
21 wchar_t printer_name[MAX_PATH];
22 DWORD size = arraysize(printer_name);
23 BOOL result = ::GetDefaultPrinter(printer_name, &size);
24 if (result == 0) {
25 if (GetLastError() == ERROR_FILE_NOT_FOUND) {
26 printf("There is no printer installed, printing can't be tested!\n");
27 return std::wstring();
28 }
29 printf("INTERNAL PRINTER ERROR!\n");
30 return std::wstring();
31 }
32 return printer_name;
33 }
34};
35
36#endif // CHROME_BROWSER_PRINTING_PRINTING_TEST_H__
license.botbf09a502008-08-24 00:55:5537