| Index: chrome/browser/chromeos/printing/printer_translator_unittest.cc
|
| diff --git a/chrome/browser/chromeos/printing/printer_translator_unittest.cc b/chrome/browser/chromeos/printing/printer_translator_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a3d8f790d4ec13fdcbadb3e2d015e674f3c8d5e9
|
| --- /dev/null
|
| +++ b/chrome/browser/chromeos/printing/printer_translator_unittest.cc
|
| @@ -0,0 +1,120 @@
|
| +// Copyright 2016 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 "base/test/values_test_util.h"
|
| +#include "base/values.h"
|
| +#include "chrome/browser/chromeos/printing/printer_configuration.h"
|
| +#include "chrome/browser/chromeos/printing/printer_translator.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace chromeos {
|
| +
|
| +// Printer test data
|
| +const char kGUID[] = "GUID-GUID-GUID";
|
| +const char kName[] = "Chrome Super Printer";
|
| +const char kDescription[] = "first star on the left";
|
| +const char kMake[] = "Chrome";
|
| +const char kModel[] = "Inktastic Laser Magic";
|
| +const char kUri[] = "ipp://printy.domain.co:555/ipp/print";
|
| +const char kUUID[] = "UUID-UUID-UUID";
|
| +
|
| +// PPDFile test data
|
| +const int kPPDiD = 13334;
|
| +const char kFileName[] = "path/to/ppd/file.ppd";
|
| +const int kVersion = 47773;
|
| +const bool kQuirks = false;
|
| +
|
| +TEST(PrinterTranslatorTest, MergePrinterPreferenceMissingId) {
|
| + base::DictionaryValue value;
|
| + Printer printer;
|
| +
|
| + EXPECT_FALSE(MergePrinterPreference(value, &printer));
|
| +}
|
| +
|
| +TEST(PrinterTranslatorTest, MergePrinterPreference) {
|
| + base::DictionaryValue preference;
|
| + preference.SetString("id", kGUID);
|
| + preference.SetString("display_name", kName);
|
| + preference.SetString("description", kDescription);
|
| + preference.SetString("manufacturer", kMake);
|
| + preference.SetString("model", kModel);
|
| + preference.SetString("uri", kUri);
|
| + preference.SetString("uuid", kUUID);
|
| +
|
| + Printer printer;
|
| + EXPECT_TRUE(MergePrinterPreference(preference, &printer));
|
| +
|
| + EXPECT_EQ(kGUID, printer.id());
|
| + EXPECT_EQ(kName, printer.display_name());
|
| + EXPECT_EQ(kDescription, printer.description());
|
| + EXPECT_EQ(kMake, printer.manufacturer());
|
| + EXPECT_EQ(kModel, printer.model());
|
| + EXPECT_EQ(kUri, printer.uri());
|
| + EXPECT_EQ(kUUID, printer.uuid());
|
| +}
|
| +
|
| +TEST(PrinterTranslatorTest, PrinterToPref) {
|
| + Printer printer("GLOBALLY_UNIQUE_ID");
|
| + printer.set_display_name(kName);
|
| + printer.set_description(kDescription);
|
| + printer.set_manufacturer(kMake);
|
| + printer.set_model(kModel);
|
| + printer.set_uri(kUri);
|
| + printer.set_uuid(kUUID);
|
| +
|
| + base::DictionaryValue pref;
|
| + PrinterToPref(printer, &pref);
|
| +
|
| + base::ExpectDictStringValue("GLOBALLY_UNIQUE_ID", pref, "id");
|
| + base::ExpectDictStringValue(kName, pref, "display_name");
|
| + base::ExpectDictStringValue(kDescription, pref, "description");
|
| + base::ExpectDictStringValue(kMake, pref, "manufacturer");
|
| + base::ExpectDictStringValue(kModel, pref, "model");
|
| + base::ExpectDictStringValue(kUri, pref, "uri");
|
| + base::ExpectDictStringValue(kUUID, pref, "uuid");
|
| +}
|
| +
|
| +TEST(PrinterTransltorTest, PrinterToPrefPPDFile) {
|
| + PPDFile ppd;
|
| + ppd.id = kPPDiD;
|
| + ppd.file_name = kFileName;
|
| + ppd.version_number = kVersion;
|
| + ppd.from_quirks_server = kQuirks;
|
| +
|
| + Printer printer("UNIQUE_ID");
|
| + printer.set_ppd(ppd);
|
| +
|
| + base::DictionaryValue actual;
|
| + PrinterToPref(printer, &actual);
|
| +
|
| + base::ExpectDictIntegerValue(kPPDiD, actual, "ppd.id");
|
| + base::ExpectDictStringValue(kFileName, actual, "ppd.file_name");
|
| + base::ExpectDictIntegerValue(kVersion, actual, "ppd.version_number");
|
| + base::ExpectDictBooleanValue(kQuirks, actual, "ppd.from_quirks_server");
|
| +}
|
| +
|
| +TEST(PrinterTranslatorTest, MergePrinterPreferenceRoundTrip) {
|
| + base::DictionaryValue preference;
|
| + preference.SetString("id", kGUID);
|
| + preference.SetString("display_name", kName);
|
| + preference.SetString("description", kDescription);
|
| + preference.SetString("manufacturer", kMake);
|
| + preference.SetString("model", kModel);
|
| + preference.SetString("uri", kUri);
|
| + preference.SetString("uuid", kUUID);
|
| +
|
| + preference.SetInteger("ppd.id", kPPDiD);
|
| + preference.SetString("ppd.file_name", kFileName);
|
| + preference.SetInteger("ppd.version_number", kVersion);
|
| + preference.SetBoolean("ppd.from_quirks_server", kQuirks);
|
| +
|
| + base::DictionaryValue pref_copy;
|
| + Printer printer;
|
| + MergePrinterPreference(preference, &printer);
|
| + PrinterToPref(printer, &pref_copy);
|
| +
|
| + EXPECT_TRUE(preference.Equals(&pref_copy));
|
| +}
|
| +
|
| +} // namespace chromeos
|
|
|