• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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