PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/react-native/ReactCommon/react/renderer/css/tests
Просмотр файла: CSSListTest.cpp
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#include <gtest/gtest.h>
#include <react/renderer/css/CSSCompoundDataType.h>
#include <react/renderer/css/CSSLength.h>
#include <react/renderer/css/CSSList.h>
#include <react/renderer/css/CSSNumber.h>
#include <react/renderer/css/CSSValueParser.h>
namespace facebook::react {
TEST(CSSList, empty_values) {
auto emptyValue = parseCSSProperty<CSSCommaSeparatedList<CSSNumber>>("");
EXPECT_TRUE(std::holds_alternative<std::monostate>(emptyValue));
auto whitespaceValue =
parseCSSProperty<CSSCommaSeparatedList<CSSNumber>>(" ");
EXPECT_TRUE(std::holds_alternative<std::monostate>(whitespaceValue));
auto commaValue = parseCSSProperty<CSSCommaSeparatedList<CSSNumber>>(",");
}
TEST(CSSList, single_value) {
auto simpleValue = parseCSSProperty<CSSCommaSeparatedList<CSSNumber>>("20");
EXPECT_TRUE(
std::holds_alternative<CSSCommaSeparatedList<CSSNumber>>(simpleValue));
EXPECT_EQ(std::get<CSSCommaSeparatedList<CSSNumber>>(simpleValue).size(), 1);
EXPECT_EQ(
std::get<CSSCommaSeparatedList<CSSNumber>>(simpleValue)[0].value, 20);
auto whitespaceValue =
parseCSSProperty<CSSCommaSeparatedList<CSSNumber>>(" 20 ");
EXPECT_TRUE(std::holds_alternative<CSSCommaSeparatedList<CSSNumber>>(
whitespaceValue));
EXPECT_EQ(
std::get<CSSCommaSeparatedList<CSSNumber>>(whitespaceValue).size(), 1);
EXPECT_EQ(
std::get<CSSCommaSeparatedList<CSSNumber>>(whitespaceValue)[0].value, 20);
}
TEST(CSSList, wrong_type) {
auto simpleValue = parseCSSProperty<CSSCommaSeparatedList<CSSNumber>>("20px");
EXPECT_TRUE(std::holds_alternative<std::monostate>(simpleValue));
}
TEST(CSSList, multiple_comma_values) {
auto simpleValue =
parseCSSProperty<CSSCommaSeparatedList<CSSNumber>>("20, 30, 40");
EXPECT_TRUE(
std::holds_alternative<CSSCommaSeparatedList<CSSNumber>>(simpleValue));
EXPECT_EQ(std::get<CSSCommaSeparatedList<CSSNumber>>(simpleValue).size(), 3);
EXPECT_EQ(
std::get<CSSCommaSeparatedList<CSSNumber>>(simpleValue)[0].value, 20);
EXPECT_EQ(
std::get<CSSCommaSeparatedList<CSSNumber>>(simpleValue)[1].value, 30);
EXPECT_EQ(
std::get<CSSCommaSeparatedList<CSSNumber>>(simpleValue)[2].value, 40);
auto whitespaceValue =
parseCSSProperty<CSSCommaSeparatedList<CSSNumber>>(" 20 , 30 , 40 ");
EXPECT_TRUE(std::holds_alternative<CSSCommaSeparatedList<CSSNumber>>(
whitespaceValue));
EXPECT_EQ(
std::get<CSSCommaSeparatedList<CSSNumber>>(whitespaceValue).size(), 3);
EXPECT_EQ(
std::get<CSSCommaSeparatedList<CSSNumber>>(whitespaceValue)[0].value, 20);
EXPECT_EQ(
std::get<CSSCommaSeparatedList<CSSNumber>>(whitespaceValue)[1].value, 30);
EXPECT_EQ(
std::get<CSSCommaSeparatedList<CSSNumber>>(whitespaceValue)[2].value, 40);
}
TEST(CSSList, multiple_space_values) {
auto simpleValue =
parseCSSProperty<CSSWhitespaceSeparatedList<CSSNumber>>("20 30 40");
EXPECT_TRUE(std::holds_alternative<CSSWhitespaceSeparatedList<CSSNumber>>(
simpleValue));
EXPECT_EQ(
std::get<CSSWhitespaceSeparatedList<CSSNumber>>(simpleValue).size(), 3);
EXPECT_EQ(
std::get<CSSWhitespaceSeparatedList<CSSNumber>>(simpleValue)[0].value,
20);
EXPECT_EQ(
std::get<CSSWhitespaceSeparatedList<CSSNumber>>(simpleValue)[1].value,
30);
EXPECT_EQ(
std::get<CSSWhitespaceSeparatedList<CSSNumber>>(simpleValue)[2].value,
40);
auto whitespaceValue =
parseCSSProperty<CSSWhitespaceSeparatedList<CSSNumber>>(" 20 \n 30 40 ");
EXPECT_TRUE(std::holds_alternative<CSSWhitespaceSeparatedList<CSSNumber>>(
whitespaceValue));
EXPECT_EQ(
std::get<CSSWhitespaceSeparatedList<CSSNumber>>(whitespaceValue).size(),
3);
EXPECT_EQ(
std::get<CSSWhitespaceSeparatedList<CSSNumber>>(whitespaceValue)[0].value,
20);
EXPECT_EQ(
std::get<CSSWhitespaceSeparatedList<CSSNumber>>(whitespaceValue)[1].value,
30);
EXPECT_EQ(
std::get<CSSWhitespaceSeparatedList<CSSNumber>>(whitespaceValue)[2].value,
40);
}
TEST(CSSList, extra_comma_tokens) {
auto extraTokensValue =
parseCSSProperty<CSSCommaSeparatedList<CSSNumber>>("20, 30, 40 50");
EXPECT_TRUE(std::holds_alternative<std::monostate>(extraTokensValue));
}
TEST(CSSList, extra_space_tokens) {
auto extraTokensValue =
parseCSSProperty<CSSWhitespaceSeparatedList<CSSNumber>>("20 30 40 ,50");
EXPECT_TRUE(std::holds_alternative<std::monostate>(extraTokensValue));
}
TEST(CSSList, extra_commas) {
auto prefixCommaValue =
parseCSSProperty<CSSCommaSeparatedList<CSSNumber>>(",20");
EXPECT_TRUE(std::holds_alternative<std::monostate>(prefixCommaValue));
auto suffixCommaValue =
parseCSSProperty<CSSCommaSeparatedList<CSSNumber>>("20,");
EXPECT_TRUE(std::holds_alternative<std::monostate>(suffixCommaValue));
}
TEST(CSSList, compound_data_type) {
using NumberLengthList =
CSSCommaSeparatedList<CSSCompoundDataType<CSSNumber, CSSLength>>;
auto compoundType = parseCSSProperty<NumberLengthList>("10px,20");
EXPECT_TRUE(std::holds_alternative<NumberLengthList>(compoundType));
auto& list = std::get<NumberLengthList>(compoundType);
EXPECT_EQ(list.size(), 2);
EXPECT_TRUE(std::holds_alternative<CSSLength>(list[0]));
EXPECT_EQ(std::get<CSSLength>(list[0]).value, 10);
EXPECT_EQ(std::get<CSSLength>(list[0]).unit, CSSLengthUnit::Px);
EXPECT_TRUE(std::holds_alternative<CSSNumber>(list[1]));
EXPECT_EQ(std::get<CSSNumber>(list[1]).value, 20);
}
} // namespace facebook::react
Выполнить команду
Для локальной разработки. Не используйте в интернете!