示例#1
0
TEST(TestJArray, TestEqual2)
{
	using namespace pbnjson;

	string input1 =
		"{\"subscribed\":false,\"mime\":\"audio/mpeg\",\"verb\":\"exampleVerb\","
		"\"returnValue\":true,\"resourceHandlers\":{\"alternates\":"
		"[{\"mime\":\"audio/mpeg\",\"extension\":\"mp3\","
		"\"appId\":\"com.yourdomain.helloworld\",\"streamable\":true,\"index\":1,"
		"\"verbs\":{\"exampleVerb\":\"42\"}}]}}";
	string input2 =
		"{\"subscribed\":false,\"mime\":\"audio/mpeg\",\"verb\":\"exampleVerb\","
		"\"returnValue\":true,\"resourceHandlers\":{\"alternates\":"
		"[{\"mime\":\"audio/mpeg\",\"extension\":\"mp3\","
		"\"appId\":\"com.yourdomain.helloworld\",\"streamable\":true,\"index\":1,"
		"\"exampleVerb\":\"42\",\"verbs\":{}}]}}";

	JDomParser parser;
	ASSERT_TRUE(parser.parse(input1, JSchema::AllSchema(), NULL));
	pbnjson::JValue val1 = parser.getDom();
	ASSERT_TRUE(parser.parse(input2, JSchema::AllSchema(), NULL));
	pbnjson::JValue val2 = parser.getDom();

	EXPECT_FALSE(val1 == val2);
}
示例#2
0
void TestRegression::testNOV99444()
{
	using namespace pbnjson;

	QFETCH(std::string, rawInput);
	QFETCH(std::string, schema);
	QFETCH(bool, inputMatchesSchema);

	qDebug() << "Testing" << rawInput.c_str() << "against" << schema.c_str();

	JSchema inputSchema = JSchemaFragment(schema);
	JDomParser parser;

	for (int i = 0; i < 10; i++) {
		qDebug() << "Retying" << i << "th time";
		parser.parse(rawInput, inputSchema);
	}
	bool parsed = parser.parse(rawInput, inputSchema);
	QCOMPARE(parsed, inputMatchesSchema);

	if (!parsed)
		return;

	JValue json = parser.getDom();

	int errorCode;
	QCOMPARE(json["errorCode"].asNumber<int>(errorCode), (ConversionResultFlags)CONV_OK);

	if (errorCode != 0) {
		QVERIFY(json["errorText"].isString());
	} else {
		QVERIFY(json["errorText"].isNull());
	}
}
TEST_F(TestNumberSanity, Valid2)
{
	JDomParser parser;
	EXPECT_TRUE(parser.parse("[1.0]", *schema.get()));
	JValue parsed = parser.getDom();
	EXPECT_TRUE(parsed.isArray());
	EXPECT_TRUE(JValidator::isValid(parsed, *schema.get()));
}
TEST_F(TestSchemaContact, Valid2)
{
	JDomParser parser;
	ASSERT_TRUE(parser.parse("{}", *schema.get()));
	auto parsed = parser.getDom();
	EXPECT_TRUE(parsed.isObject());
	EXPECT_TRUE(JValidator::isValid(parsed, *schema.get()));
}
示例#5
0
TEST_F(NOV99444, Failure)
{
	JSchema schema{JSchemaFragment(_faulty_schema)};
	JDomParser parser;

	for (int i = 0; i < 10; i++)
		parser.parse(_input, schema);
	ASSERT_FALSE(parser.parse(_input, schema));
}
TEST_F(TestNumberSanity, Valid3)
{
	char const *const INPUT =
		"[2394309382309842309234825.62345235323253253220398443213241234"
		"123431413e90234098320982340924382340982349023423498234908234]";

	JDomParser parser;
	EXPECT_TRUE(parser.parse(INPUT, *schema.get()));
	JValue parsed = parser.getDom();
	EXPECT_TRUE(parsed.isArray());
	EXPECT_TRUE(JValidator::isValid(parsed, *schema.get()));
}
TEST_F(TestSchemaContact, Valid1)
{
	JDomParser parser;
	ASSERT_TRUE(parser.parse(
		"{"
			"\"contactIds\": [ \"1\" ],"
			"\"displayIndex\": \"first name\""
		"}",
		*schema.get()));
	auto parsed = parser.getDom();
	EXPECT_TRUE(parsed.isObject());
	EXPECT_TRUE(JValidator::isValid(parsed, *schema.get()));
}
示例#8
0
void TestRegression::testSysmgrFailure()
{
	using namespace pbnjson;

	QFETCH(std::string, rawInput);
	QFETCH(std::string, schema);
	QFETCH(bool, inputMatchesSchema);

	JSchema inputSchema = JSchemaFragment(schema);
	JDomParser parser;
	bool parsed = parser.parse(rawInput, inputSchema);
	QCOMPARE(parsed, inputMatchesSchema);
}
示例#9
0
TEST_F(NOV99444, Success)
{
	JSchema schema = JSchemaFragment(_valid_schema);
	JDomParser parser;

	for (int i = 0; i < 10; i++)
		parser.parse(_input, schema);
	ASSERT_TRUE(parser.parse(_input, schema));

	JValue json = parser.getDom();

	int error_code;
	EXPECT_EQ(CONV_OK, json["errorCode"].asNumber<int>(error_code));
	EXPECT_TRUE(json["errorText"].isString());
}
示例#10
0
TEST_F(TestSchemaContact, Valid3)
{
	JDomParser parser;
	ASSERT_TRUE(parser.parse(
		"{"
			"\"displayName\": \"\","
			"\"name\": {},"
			"\"birthday\": \"\","
			"\"anniversary\": \"\","
			"\"gender\": \"undisclosed\""
		"}",
		*schema.get())
		);
	auto parsed = parser.getDom();
	EXPECT_TRUE(parsed.isObject());
	EXPECT_TRUE(JValidator::isValid(parsed, *schema.get()));
}
示例#11
0
TEST(GF_7251, MemoryLeak3)
{
	char const *schema =
		"{ \"type\": \"object\","
		  "\"properties\": {"
		    "\"hasVideo\":{"
		      "\"type\": \"object\","
		      "\"properties\": {"
		        "\"state\": {\"type\":\"boolean\"},"
		        "\"mediaId\": {\"type\": \"string\"}"
		      "}"
		    "}"
		  "}"
		"}";

	JDomParser parser;
	ASSERT_TRUE(parser.parse("{\"hasVideo\":{\"state\":1,\"mediaId\":\"jtNe8Pn3csslQ6R\"}}", JSchemaFragment("{}")));

	JValue object = parser.getDom();
	string serialized;

	EXPECT_FALSE(JGenerator{}.toString(object, JSchemaFragment{schema}, serialized));
}
示例#12
0
TEST_F(TestNumberSanity, Invalid6)
{
	JDomParser parser;
	EXPECT_FALSE(parser.parse("{}", *schema.get()));
}
示例#13
0
TEST_F(TestNumberSanity, Invalid1)
{
	JDomParser parser;
	EXPECT_FALSE(parser.parse("[\"abc\"]", *schema.get()));
}
示例#14
0
TEST_F(TestSchemaContact, Invalid1)
{
	JDomParser parser;
	EXPECT_FALSE(parser.parse("", *schema.get()));
}