102 lines
3.5 KiB
C++
102 lines
3.5 KiB
C++
// Copyright 2018 PDFium 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 "xfa/fxfa/parser/xfa_basic_data.h"
|
|
|
|
#include <utility>
|
|
|
|
#include "testing/gtest/include/gtest/gtest.h"
|
|
|
|
TEST(XFABasicDataTest, GetPacketByName) {
|
|
Optional<XFA_PACKETINFO> result = XFA_GetPacketByName(L"");
|
|
EXPECT_FALSE(result.has_value());
|
|
|
|
result = XFA_GetPacketByName(L"nonesuch");
|
|
EXPECT_FALSE(result.has_value());
|
|
|
|
result = XFA_GetPacketByName(L"datasets");
|
|
ASSERT_TRUE(result.has_value());
|
|
EXPECT_EQ(XFA_PacketType::Datasets, result.value().packet_type);
|
|
|
|
result = XFA_GetPacketByName(L"sourceSet");
|
|
ASSERT_TRUE(result.has_value());
|
|
EXPECT_EQ(XFA_PacketType::SourceSet, result.value().packet_type);
|
|
}
|
|
|
|
TEST(XFABasicDataTest, PacketToName) {
|
|
XFA_PACKETINFO result = XFA_GetPacketByIndex(XFA_PacketType::Datasets);
|
|
EXPECT_STREQ(L"datasets", result.name);
|
|
|
|
result = XFA_GetPacketByIndex(XFA_PacketType::ConnectionSet);
|
|
EXPECT_STREQ(L"connectionSet", result.name);
|
|
}
|
|
|
|
TEST(XFABasicDataTest, GetElementByName) {
|
|
EXPECT_EQ(XFA_Element::Unknown, XFA_GetElementByName(L""));
|
|
EXPECT_EQ(XFA_Element::Unknown, XFA_GetElementByName(L"nonesuch"));
|
|
EXPECT_EQ(XFA_Element::ConnectionSet, XFA_GetElementByName(L"connectionSet"));
|
|
EXPECT_EQ(XFA_Element::Items, XFA_GetElementByName(L"items"));
|
|
|
|
// Internal elements are not retrievable by name.
|
|
EXPECT_EQ(XFA_Element::Unknown, XFA_GetElementByName(L"model"));
|
|
}
|
|
|
|
TEST(XFABasicDataTest, ElementToName) {
|
|
EXPECT_EQ("conformance", XFA_ElementToName(XFA_Element::Conformance));
|
|
EXPECT_EQ("tagged", XFA_ElementToName(XFA_Element::Tagged));
|
|
|
|
// Internal elements resolve back to real names.
|
|
EXPECT_EQ("node", XFA_ElementToName(XFA_Element::Node));
|
|
}
|
|
|
|
TEST(XFABasicDataTest, GetAttributeByName) {
|
|
Optional<XFA_ATTRIBUTEINFO> result = XFA_GetAttributeByName(L"");
|
|
EXPECT_FALSE(result.has_value());
|
|
|
|
result = XFA_GetAttributeByName(L"nonesuch");
|
|
EXPECT_FALSE(result.has_value());
|
|
|
|
result = XFA_GetAttributeByName(L"h");
|
|
ASSERT_TRUE(result.has_value());
|
|
EXPECT_EQ(XFA_Attribute::H, result.value().attribute);
|
|
|
|
result = XFA_GetAttributeByName(L"short");
|
|
ASSERT_TRUE(result.has_value());
|
|
EXPECT_EQ(XFA_Attribute::Short, result.value().attribute);
|
|
|
|
result = XFA_GetAttributeByName(L"decipherOnly");
|
|
ASSERT_TRUE(result.has_value());
|
|
EXPECT_EQ(XFA_Attribute::DecipherOnly, result.value().attribute);
|
|
}
|
|
|
|
TEST(XFABasicDataTest, AttributeToName) {
|
|
EXPECT_EQ("spaceBelow", XFA_AttributeToName(XFA_Attribute::SpaceBelow));
|
|
EXPECT_EQ("decipherOnly", XFA_AttributeToName(XFA_Attribute::DecipherOnly));
|
|
}
|
|
|
|
TEST(XFABasicDataTest, GetAttributeValueByName) {
|
|
Optional<XFA_AttributeValue> result = XFA_GetAttributeValueByName(L"");
|
|
EXPECT_FALSE(result.has_value());
|
|
|
|
result = XFA_GetAttributeValueByName(L"nonesuch");
|
|
EXPECT_FALSE(result.has_value());
|
|
|
|
result = XFA_GetAttributeValueByName(L"*");
|
|
ASSERT_TRUE(result.has_value());
|
|
EXPECT_EQ(XFA_AttributeValue::Asterisk, result.value());
|
|
|
|
result = XFA_GetAttributeValueByName(L"visible");
|
|
ASSERT_TRUE(result.has_value());
|
|
EXPECT_EQ(XFA_AttributeValue::Visible, result.value());
|
|
|
|
result = XFA_GetAttributeValueByName(L"lowered");
|
|
ASSERT_TRUE(result.has_value());
|
|
EXPECT_EQ(XFA_AttributeValue::Lowered, result.value());
|
|
}
|
|
|
|
TEST(XFABasicDataTest, AttributeValueToName) {
|
|
EXPECT_EQ("rl-tb", XFA_AttributeValueToName(XFA_AttributeValue::Rl_tb));
|
|
EXPECT_EQ("lowered", XFA_AttributeValueToName(XFA_AttributeValue::Lowered));
|
|
}
|