1 /*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <gtest/gtest.h>
17 #include "printer_preferences.h"
18 #include "print_json_util.h"
19
20 using namespace testing::ext;
21
22 namespace OHOS {
23 namespace Print {
24 class PrinterPreferencesTest : public testing::Test {
25 public:
26 static void SetUpTestCase(void);
27 static void TearDownTestCase(void);
28 void SetUp();
29 void TearDown();
30 };
31
SetUpTestCase(void)32 void PrinterPreferencesTest::SetUpTestCase(void) {}
33
TearDownTestCase(void)34 void PrinterPreferencesTest::TearDownTestCase(void) {}
35
SetUp(void)36 void PrinterPreferencesTest::SetUp(void) {}
37
TearDown(void)38 void PrinterPreferencesTest::TearDown(void) {}
39
40 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0001, TestSize.Level1)
41 {
42 OHOS::Print::PrinterPreferences preferences;
43 preferences.SetDefaultDuplexMode(0);
44 EXPECT_EQ(true, preferences.HasDefaultDuplexMode());
45 EXPECT_EQ(0, preferences.GetDefaultDuplexMode());
46 }
47
48 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0002, TestSize.Level1)
49 {
50 OHOS::Print::PrinterPreferences preferences;
51 preferences.SetDefaultPrintQuality(4);
52 EXPECT_EQ(true, preferences.HasDefaultPrintQuality());
53 EXPECT_EQ(4, preferences.GetDefaultPrintQuality());
54 }
55
56 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0003, TestSize.Level1)
57 {
58 OHOS::Print::PrinterPreferences preferences;
59 preferences.SetDefaultMediaType("stationery");
60 EXPECT_EQ(true, preferences.HasDefaultMediaType());
61 EXPECT_EQ("stationery", preferences.GetDefaultMediaType());
62 }
63
64 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0004, TestSize.Level1)
65 {
66 OHOS::Print::PrinterPreferences preferences;
67 preferences.SetDefaultPageSizeId("ISO_A4");
68 EXPECT_EQ(true, preferences.HasDefaultPageSizeId());
69 EXPECT_EQ("ISO_A4", preferences.GetDefaultPageSizeId());
70 }
71
72 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0005, TestSize.Level1)
73 {
74 OHOS::Print::PrinterPreferences preferences;
75 preferences.SetDefaultOrientation(0);
76 EXPECT_EQ(true, preferences.HasDefaultOrientation());
77 EXPECT_EQ(0, preferences.GetDefaultOrientation());
78 }
79
80 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0006, TestSize.Level1)
81 {
82 OHOS::Print::PrinterPreferences preferences;
83 preferences.SetBorderless(true);
84 EXPECT_EQ(true, preferences.HasBorderless());
85 EXPECT_EQ(true, preferences.GetBorderless());
86 }
87
88 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0007, TestSize.Level1)
89 {
90 OHOS::Print::PrinterPreferences preferences;
91 preferences.SetOption("test");
92 EXPECT_EQ(true, preferences.HasOption());
93 EXPECT_EQ("test", preferences.GetOption());
94 }
95
96 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0008, TestSize.Level1)
97 {
98 OHOS::Print::PrinterPreferences preferences;
99 preferences.Dump();
100 Parcel parcel;
101 EXPECT_EQ(true, preferences.Marshalling(parcel));
102 }
103
104 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0009, TestSize.Level1)
105 {
106 OHOS::Print::PrinterPreferences preferences;
107 preferences.SetDefaultDuplexMode(0);
108 preferences.SetDefaultPrintQuality(4);
109 preferences.SetDefaultMediaType("stationery");
110 preferences.SetDefaultPageSizeId("ISO_A4");
111 preferences.SetDefaultOrientation(0);
112 preferences.SetBorderless(true);
113 preferences.SetOption("test");
114 preferences.Dump();
115 Parcel parcel;
116 EXPECT_EQ(true, preferences.Marshalling(parcel));
117 }
118
119 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0010, TestSize.Level1)
120 {
121 OHOS::Print::PrinterPreferences preferences;
122 preferences.SetDefaultDuplexMode(0);
123 preferences.SetDefaultPrintQuality(4);
124 preferences.SetDefaultMediaType("stationery");
125 preferences.SetDefaultPageSizeId("ISO_A4");
126 preferences.SetDefaultOrientation(0);
127 preferences.SetBorderless(true);
128 preferences.SetOption("test");
129 Parcel parcel;
130 preferences.Marshalling(parcel);
131 EXPECT_NE(nullptr, OHOS::Print::PrinterPreferences::Unmarshalling(parcel));
132 }
133
134 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0011, TestSize.Level1)
135 {
136 OHOS::Print::PrinterPreferences preferences;
137 Parcel parcel;
138 preferences.Marshalling(parcel);
139 EXPECT_NE(nullptr, OHOS::Print::PrinterPreferences::Unmarshalling(parcel));
140 }
141
142 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0012, TestSize.Level1)
143 {
144 OHOS::Print::PrinterPreferences preferences;
145 Json::Value preferencesJson = preferences.ConvertToJson();
146 EXPECT_EQ(false, Print::PrintJsonUtil::IsMember(preferencesJson, "options"));
147 }
148
149 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0013, TestSize.Level1)
150 {
151 OHOS::Print::PrinterPreferences preferences;
152 preferences.SetOption("test");
153 Json::Value preferencesJson = preferences.ConvertToJson();
154 EXPECT_EQ(true, Print::PrintJsonUtil::IsMember(preferencesJson, "options"));
155 }
156
157 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0014, TestSize.Level1)
158 {
159 OHOS::Print::PrinterPreferences preferences;
160 Json::Value opsJson;
161 opsJson["testKey"] = "testValue";
162 preferences.SetOption(PrintJsonUtil::WriteString(opsJson));
163 Json::Value preferencesJson = preferences.ConvertToJson();
164 EXPECT_EQ(true, Print::PrintJsonUtil::IsMember(preferencesJson, "options"));
165 }
166
167 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0015, TestSize.Level1)
168 {
169 OHOS::Print::PrinterPreferences preferences;
170 Json::Value preferencesJson;
171 preferences.ConvertJsonToPrinterPreferences(preferencesJson);
172 EXPECT_EQ(preferences.HasDefaultDuplexMode(), false);
173 }
174
175 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0016, TestSize.Level1)
176 {
177 OHOS::Print::PrinterPreferences preferences;
178 Json::Value preferencesJson;
179 preferencesJson["defaultPageSizeId"] = 123;
180 preferencesJson["defaultOrientation"] = "123";
181 preferencesJson["defaultDuplexMode"] = "123";
182 preferencesJson["defaultPrintQuality"] = "123";
183 preferencesJson["defaultMediaType"] = 123;
184 preferencesJson["borderless"] = "123";
185 preferencesJson["options"] = "123";
186 preferences.ConvertJsonToPrinterPreferences(preferencesJson);
187 EXPECT_EQ(preferences.HasDefaultDuplexMode(), false);
188 }
189
190 HWTEST_F(PrinterPreferencesTest, PrinterPreferencesTest_0017, TestSize.Level1)
191 {
192 OHOS::Print::PrinterPreferences preferences;
193 Json::Value preferencesJson;
194 preferencesJson["defaultPageSizeId"] = "123";
195 preferencesJson["defaultOrientation"] = 123;
196 preferencesJson["defaultDuplexMode"] = 123;
197 preferencesJson["defaultPrintQuality"] = 123;
198 preferencesJson["defaultMediaType"] = "123";
199 preferencesJson["borderless"] = true;
200 Json::Value optionJson;
201 preferencesJson["options"] = optionJson;
202 preferences.ConvertJsonToPrinterPreferences(preferencesJson);
203 EXPECT_EQ(preferences.HasDefaultDuplexMode(), true);
204 }
205 } // namespace Print
206 } // namespace OHOS
207