20 #include <gtest/gtest.h>
21 #include <gmock/gmock.h>
23 #include "MockAampConfig.h"
24 #include "MockAampJsonObject.h"
28 using ::testing::Return;
29 using ::testing::SetArgReferee;
30 using ::testing::StrictMock;
32 using ::testing::DoAll;
41 std::unique_ptr<TextStyleAttributes> mAttributes;
47 g_mockAampJsonObject = std::make_shared<StrictMock<MockAampJsonObject>>();
50 void TearDown()
override
52 mAttributes =
nullptr;
54 g_mockAampJsonObject =
nullptr;
58 ACTION(ThrowJsonException)
69 std::string options{};
70 std::uint32_t attributesMask = 0x1234;
73 EXPECT_EQ(-1, mAttributes->getAttributes(options, attributesValues, attributesMask));
74 EXPECT_EQ(attributesMask, 0);
83 std::string options =
"{\"fontSize\":\"32.4px\"}";
84 std::uint32_t attributesMask = 0x1234;
87 EXPECT_CALL(*g_mockAampJsonObject, get(
"penSize", An<std::string&>())).WillOnce(ThrowJsonException());
88 EXPECT_EQ(-1, mAttributes->getAttributes(options, attributesValues, attributesMask));
89 EXPECT_EQ(attributesMask, 0);
99 std::string options =
"{\"fontSize\":\"32.4px\"}";
100 std::uint32_t attributesMask = 0x1234;
103 EXPECT_CALL(*g_mockAampJsonObject, get(
"penSize", An<std::string&>())).WillOnce(Return(
false));
104 EXPECT_EQ(0, mAttributes->getAttributes(options, attributesValues, attributesMask));
105 EXPECT_EQ(attributesMask, 0);
114 std::string penSizeValue =
"32.4px";
115 std::string options =
"{\"penSize\":\"" + penSizeValue +
"\"}";
116 std::uint32_t attributesMask = 0x1234;
119 EXPECT_CALL(*g_mockAampJsonObject, get(
"penSize", An<std::string&>()))
120 .WillOnce(DoAll(SetArgReferee<1>(penSizeValue), Return(
true)));
122 EXPECT_EQ(0, mAttributes->getAttributes(options, attributesValues, attributesMask));
123 EXPECT_EQ(attributesMask, 0);
133 std::string penSizeValue =
"small";
134 std::string options =
"{\"penSize\":\"" + penSizeValue +
"\"}";
135 std::uint32_t attributesMask = 0;
138 EXPECT_CALL(*g_mockAampJsonObject, get(
"penSize", An<std::string&>()))
139 .WillOnce(DoAll(SetArgReferee<1>(penSizeValue), Return(
true)));
141 EXPECT_EQ(0, mAttributes->getAttributes(options, attributesValues, attributesMask));
142 EXPECT_EQ(attributesMask, (1<<mAttributes->FONT_SIZE_ARR_POSITION));
143 EXPECT_EQ(attributesValues[mAttributes->FONT_SIZE_ARR_POSITION], mAttributes->FONT_SIZE_SMALL);
153 std::string penSizeValue =
"SMALL";
154 std::string options =
"{\"penSize\":\"" + penSizeValue +
"\"}";
155 std::uint32_t attributesMask = 0;
158 EXPECT_CALL(*g_mockAampJsonObject, get(
"penSize", An<std::string&>()))
159 .WillOnce(DoAll(SetArgReferee<1>(penSizeValue), Return(
true)));
161 EXPECT_EQ(0, mAttributes->getAttributes(options, attributesValues, attributesMask));
162 EXPECT_EQ(attributesMask, (1<<mAttributes->FONT_SIZE_ARR_POSITION));
163 EXPECT_EQ(attributesValues[mAttributes->FONT_SIZE_ARR_POSITION], mAttributes->FONT_SIZE_SMALL);
173 std::string penSizeValue =
"medium";
174 std::string options =
"{\"penSize\":\"" + penSizeValue +
"\"}";
175 std::uint32_t attributesMask = 0;
178 EXPECT_CALL(*g_mockAampJsonObject, get(
"penSize", An<std::string&>()))
179 .WillOnce(DoAll(SetArgReferee<1>(penSizeValue), Return(
true)));
181 EXPECT_EQ(0, mAttributes->getAttributes(options, attributesValues, attributesMask));
182 EXPECT_EQ(attributesMask, (1<<mAttributes->FONT_SIZE_ARR_POSITION));
183 EXPECT_EQ(attributesValues[mAttributes->FONT_SIZE_ARR_POSITION], mAttributes->FONT_SIZE_STANDARD);
194 std::string penSizeValue =
"MEDIUM";
195 std::string options =
"{\"penSize\":\"" + penSizeValue +
"\"}";
196 std::uint32_t attributesMask = 0;
199 EXPECT_CALL(*g_mockAampJsonObject, get(
"penSize", An<std::string&>()))
200 .WillOnce(DoAll(SetArgReferee<1>(penSizeValue), Return(
true)));
202 EXPECT_EQ(0, mAttributes->getAttributes(options, attributesValues, attributesMask));
203 EXPECT_EQ(attributesMask, (1<<mAttributes->FONT_SIZE_ARR_POSITION));
204 EXPECT_EQ(attributesValues[mAttributes->FONT_SIZE_ARR_POSITION], mAttributes->FONT_SIZE_STANDARD);
214 std::string penSizeValue =
"standard";
215 std::string options =
"{\"penSize\":\"" + penSizeValue +
"\"}";
216 std::uint32_t attributesMask = 0;
219 EXPECT_CALL(*g_mockAampJsonObject, get(
"penSize", An<std::string&>()))
220 .WillOnce(DoAll(SetArgReferee<1>(penSizeValue), Return(
true)));
222 EXPECT_EQ(0, mAttributes->getAttributes(options, attributesValues, attributesMask));
223 EXPECT_EQ(attributesMask, (1<<mAttributes->FONT_SIZE_ARR_POSITION));
224 EXPECT_EQ(attributesValues[mAttributes->FONT_SIZE_ARR_POSITION], mAttributes->FONT_SIZE_STANDARD);
234 std::string penSizeValue =
"large";
235 std::string options =
"{\"penSize\":\"" + penSizeValue +
"\"}";
236 std::uint32_t attributesMask = 0;
239 EXPECT_CALL(*g_mockAampJsonObject, get(
"penSize", An<std::string&>()))
240 .WillOnce(DoAll(SetArgReferee<1>(penSizeValue), Return(
true)));
242 EXPECT_EQ(0, mAttributes->getAttributes(options, attributesValues, attributesMask));
243 EXPECT_EQ(attributesMask, (1<<mAttributes->FONT_SIZE_ARR_POSITION));
244 EXPECT_EQ(attributesValues[mAttributes->FONT_SIZE_ARR_POSITION], mAttributes->FONT_SIZE_LARGE);
254 std::string penSizeValue =
"extra_large";
255 std::string options =
"{\"penSize\":\"" + penSizeValue +
"\"}";
256 std::uint32_t attributesMask = 0;
259 EXPECT_CALL(*g_mockAampJsonObject, get(
"penSize", An<std::string&>()))
260 .WillOnce(DoAll(SetArgReferee<1>(penSizeValue), Return(
true)));
262 EXPECT_EQ(0, mAttributes->getAttributes(options, attributesValues, attributesMask));
263 EXPECT_EQ(attributesMask, (1<<mAttributes->FONT_SIZE_ARR_POSITION));
264 EXPECT_EQ(attributesValues[mAttributes->FONT_SIZE_ARR_POSITION], mAttributes->FONT_SIZE_EXTRALARGE);
274 std::string penSizeValue =
"auto";
275 std::string options =
"{\"penSize\":\"" + penSizeValue +
"\"}";
276 std::uint32_t attributesMask = 0;
279 EXPECT_CALL(*g_mockAampJsonObject, get(
"penSize", An<std::string&>()))
280 .WillOnce(DoAll(SetArgReferee<1>(penSizeValue), Return(
true)));
282 EXPECT_EQ(0, mAttributes->getAttributes(options, attributesValues, attributesMask));
283 EXPECT_EQ(attributesMask, (1<<mAttributes->FONT_SIZE_ARR_POSITION));
284 EXPECT_EQ(attributesValues[mAttributes->FONT_SIZE_ARR_POSITION], mAttributes->FONT_SIZE_EMBEDDED);