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); }
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())); }
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())); }
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); }
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()); }
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())); }
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)); }
TEST_F(TestNumberSanity, Invalid6) { JDomParser parser; EXPECT_FALSE(parser.parse("{}", *schema.get())); }
TEST_F(TestNumberSanity, Invalid1) { JDomParser parser; EXPECT_FALSE(parser.parse("[\"abc\"]", *schema.get())); }
TEST_F(TestSchemaContact, Invalid1) { JDomParser parser; EXPECT_FALSE(parser.parse("", *schema.get())); }