OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/json_schema/json_schema_validator_unittest_base.h" | 5 #include "components/json_schema/json_schema_validator_unittest_base.h" |
6 | 6 |
7 #include <cfloat> | 7 #include <cfloat> |
8 #include <cmath> | 8 #include <cmath> |
9 #include <limits> | 9 #include <limits> |
10 #include <memory> | 10 #include <memory> |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
139 | 139 |
140 void JSONSchemaValidatorTestBase::TestEnum() { | 140 void JSONSchemaValidatorTestBase::TestEnum() { |
141 std::unique_ptr<base::DictionaryValue> schema( | 141 std::unique_ptr<base::DictionaryValue> schema( |
142 LoadDictionary("enum_schema.json")); | 142 LoadDictionary("enum_schema.json")); |
143 | 143 |
144 ExpectValid(TEST_SOURCE, | 144 ExpectValid(TEST_SOURCE, |
145 std::unique_ptr<base::Value>(new base::StringValue("foo")).get(), | 145 std::unique_ptr<base::Value>(new base::StringValue("foo")).get(), |
146 schema.get(), NULL); | 146 schema.get(), NULL); |
147 ExpectValid( | 147 ExpectValid( |
148 TEST_SOURCE, | 148 TEST_SOURCE, |
149 std::unique_ptr<base::Value>(new base::FundamentalValue(42)).get(), | 149 std::unique_ptr<base::Value>(new base::Value(42)).get(), |
150 schema.get(), NULL); | 150 schema.get(), NULL); |
151 ExpectValid( | 151 ExpectValid( |
152 TEST_SOURCE, | 152 TEST_SOURCE, |
153 std::unique_ptr<base::Value>(new base::FundamentalValue(false)).get(), | 153 std::unique_ptr<base::Value>(new base::Value(false)).get(), |
154 schema.get(), NULL); | 154 schema.get(), NULL); |
155 | 155 |
156 ExpectNotValid( | 156 ExpectNotValid( |
157 TEST_SOURCE, | 157 TEST_SOURCE, |
158 std::unique_ptr<base::Value>(new base::StringValue("42")).get(), | 158 std::unique_ptr<base::Value>(new base::StringValue("42")).get(), |
159 schema.get(), NULL, std::string(), JSONSchemaValidator::kInvalidEnum); | 159 schema.get(), NULL, std::string(), JSONSchemaValidator::kInvalidEnum); |
160 ExpectNotValid(TEST_SOURCE, base::Value::CreateNullValue().get(), | 160 ExpectNotValid(TEST_SOURCE, base::Value::CreateNullValue().get(), |
161 schema.get(), NULL, std::string(), | 161 schema.get(), NULL, std::string(), |
162 JSONSchemaValidator::kInvalidEnum); | 162 JSONSchemaValidator::kInvalidEnum); |
163 } | 163 } |
164 | 164 |
165 void JSONSchemaValidatorTestBase::TestChoices() { | 165 void JSONSchemaValidatorTestBase::TestChoices() { |
166 std::unique_ptr<base::DictionaryValue> schema( | 166 std::unique_ptr<base::DictionaryValue> schema( |
167 LoadDictionary("choices_schema.json")); | 167 LoadDictionary("choices_schema.json")); |
168 | 168 |
169 ExpectValid(TEST_SOURCE, base::Value::CreateNullValue().get(), schema.get(), | 169 ExpectValid(TEST_SOURCE, base::Value::CreateNullValue().get(), schema.get(), |
170 NULL); | 170 NULL); |
171 ExpectValid( | 171 ExpectValid( |
172 TEST_SOURCE, | 172 TEST_SOURCE, |
173 std::unique_ptr<base::Value>(new base::FundamentalValue(42)).get(), | 173 std::unique_ptr<base::Value>(new base::Value(42)).get(), |
174 schema.get(), NULL); | 174 schema.get(), NULL); |
175 | 175 |
176 std::unique_ptr<base::DictionaryValue> instance(new base::DictionaryValue()); | 176 std::unique_ptr<base::DictionaryValue> instance(new base::DictionaryValue()); |
177 instance->SetString("foo", "bar"); | 177 instance->SetString("foo", "bar"); |
178 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); | 178 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); |
179 | 179 |
180 ExpectNotValid( | 180 ExpectNotValid( |
181 TEST_SOURCE, | 181 TEST_SOURCE, |
182 std::unique_ptr<base::Value>(new base::StringValue("foo")).get(), | 182 std::unique_ptr<base::Value>(new base::StringValue("foo")).get(), |
183 schema.get(), NULL, std::string(), JSONSchemaValidator::kInvalidChoice); | 183 schema.get(), NULL, std::string(), JSONSchemaValidator::kInvalidChoice); |
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
398 NULL, | 398 NULL, |
399 std::string(), | 399 std::string(), |
400 JSONSchemaValidator::FormatErrorMessage( | 400 JSONSchemaValidator::FormatErrorMessage( |
401 JSONSchemaValidator::kArrayMaxItems, "2")); | 401 JSONSchemaValidator::kArrayMaxItems, "2")); |
402 | 402 |
403 instance->Remove(1, NULL); | 403 instance->Remove(1, NULL); |
404 instance->Remove(1, NULL); | 404 instance->Remove(1, NULL); |
405 ExpectNotValid(TEST_SOURCE, instance.get(), schema.get(), NULL, "1", | 405 ExpectNotValid(TEST_SOURCE, instance.get(), schema.get(), NULL, "1", |
406 JSONSchemaValidator::kArrayItemRequired); | 406 JSONSchemaValidator::kArrayItemRequired); |
407 | 407 |
408 instance->Set(0, new base::FundamentalValue(42)); | 408 instance->Set(0, new base::Value(42)); |
409 instance->AppendInteger(42); | 409 instance->AppendInteger(42); |
410 ExpectNotValid(TEST_SOURCE, instance.get(), schema.get(), NULL, "0", | 410 ExpectNotValid(TEST_SOURCE, instance.get(), schema.get(), NULL, "0", |
411 JSONSchemaValidator::FormatErrorMessage( | 411 JSONSchemaValidator::FormatErrorMessage( |
412 JSONSchemaValidator::kInvalidType, | 412 JSONSchemaValidator::kInvalidType, |
413 schema::kString, | 413 schema::kString, |
414 schema::kInteger)); | 414 schema::kInteger)); |
415 | 415 |
416 base::DictionaryValue* additional_properties = new base::DictionaryValue(); | 416 base::DictionaryValue* additional_properties = new base::DictionaryValue(); |
417 additional_properties->SetString(schema::kType, schema::kAny); | 417 additional_properties->SetString(schema::kType, schema::kAny); |
418 schema->Set(schema::kAdditionalProperties, additional_properties); | 418 schema->Set(schema::kAdditionalProperties, additional_properties); |
419 instance->Set(0, new base::StringValue("42")); | 419 instance->Set(0, new base::StringValue("42")); |
420 instance->AppendString("anything"); | 420 instance->AppendString("anything"); |
421 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); | 421 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); |
422 instance->Set(2, new base::ListValue()); | 422 instance->Set(2, new base::ListValue()); |
423 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); | 423 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); |
424 | 424 |
425 additional_properties->SetString(schema::kType, schema::kBoolean); | 425 additional_properties->SetString(schema::kType, schema::kBoolean); |
426 ExpectNotValid(TEST_SOURCE, instance.get(), schema.get(), NULL, "2", | 426 ExpectNotValid(TEST_SOURCE, instance.get(), schema.get(), NULL, "2", |
427 JSONSchemaValidator::FormatErrorMessage( | 427 JSONSchemaValidator::FormatErrorMessage( |
428 JSONSchemaValidator::kInvalidType, | 428 JSONSchemaValidator::kInvalidType, |
429 schema::kBoolean, | 429 schema::kBoolean, |
430 schema::kArray)); | 430 schema::kArray)); |
431 instance->Set(2, new base::FundamentalValue(false)); | 431 instance->Set(2, new base::Value(false)); |
432 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); | 432 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); |
433 | 433 |
434 base::ListValue* items_schema = NULL; | 434 base::ListValue* items_schema = NULL; |
435 base::DictionaryValue* item0_schema = NULL; | 435 base::DictionaryValue* item0_schema = NULL; |
436 ASSERT_TRUE(schema->GetList(schema::kItems, &items_schema)); | 436 ASSERT_TRUE(schema->GetList(schema::kItems, &items_schema)); |
437 ASSERT_TRUE(items_schema->GetDictionary(0, &item0_schema)); | 437 ASSERT_TRUE(items_schema->GetDictionary(0, &item0_schema)); |
438 item0_schema->SetBoolean(schema::kOptional, true); | 438 item0_schema->SetBoolean(schema::kOptional, true); |
439 instance->Remove(2, NULL); | 439 instance->Remove(2, NULL); |
440 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); | 440 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); |
441 // TODO(aa): I think this is inconsistent with the handling of NULL+optional | 441 // TODO(aa): I think this is inconsistent with the handling of NULL+optional |
442 // for objects. | 442 // for objects. |
443 instance->Set(0, base::Value::CreateNullValue()); | 443 instance->Set(0, base::Value::CreateNullValue()); |
444 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); | 444 ExpectValid(TEST_SOURCE, instance.get(), schema.get(), NULL); |
445 instance->Set(0, new base::FundamentalValue(42)); | 445 instance->Set(0, new base::Value(42)); |
446 ExpectNotValid(TEST_SOURCE, instance.get(), schema.get(), NULL, "0", | 446 ExpectNotValid(TEST_SOURCE, instance.get(), schema.get(), NULL, "0", |
447 JSONSchemaValidator::FormatErrorMessage( | 447 JSONSchemaValidator::FormatErrorMessage( |
448 JSONSchemaValidator::kInvalidType, | 448 JSONSchemaValidator::kInvalidType, |
449 schema::kString, | 449 schema::kString, |
450 schema::kInteger)); | 450 schema::kInteger)); |
451 } | 451 } |
452 | 452 |
453 void JSONSchemaValidatorTestBase::TestArrayNonTuple() { | 453 void JSONSchemaValidatorTestBase::TestArrayNonTuple() { |
454 std::unique_ptr<base::DictionaryValue> schema(new base::DictionaryValue()); | 454 std::unique_ptr<base::DictionaryValue> schema(new base::DictionaryValue()); |
455 schema->SetString(schema::kType, schema::kArray); | 455 schema->SetString(schema::kType, schema::kArray); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
522 } | 522 } |
523 | 523 |
524 void JSONSchemaValidatorTestBase::TestNumber() { | 524 void JSONSchemaValidatorTestBase::TestNumber() { |
525 std::unique_ptr<base::DictionaryValue> schema(new base::DictionaryValue()); | 525 std::unique_ptr<base::DictionaryValue> schema(new base::DictionaryValue()); |
526 schema->SetString(schema::kType, schema::kNumber); | 526 schema->SetString(schema::kType, schema::kNumber); |
527 schema->SetInteger(schema::kMinimum, 1); | 527 schema->SetInteger(schema::kMinimum, 1); |
528 schema->SetInteger(schema::kMaximum, 100); | 528 schema->SetInteger(schema::kMaximum, 100); |
529 schema->SetInteger("maxDecimal", 2); | 529 schema->SetInteger("maxDecimal", 2); |
530 | 530 |
531 ExpectValid(TEST_SOURCE, | 531 ExpectValid(TEST_SOURCE, |
532 std::unique_ptr<base::Value>(new base::FundamentalValue(1)).get(), | 532 std::unique_ptr<base::Value>(new base::Value(1)).get(), |
533 schema.get(), NULL); | 533 schema.get(), NULL); |
534 ExpectValid( | 534 ExpectValid( |
535 TEST_SOURCE, | 535 TEST_SOURCE, |
536 std::unique_ptr<base::Value>(new base::FundamentalValue(50)).get(), | 536 std::unique_ptr<base::Value>(new base::Value(50)).get(), |
537 schema.get(), NULL); | 537 schema.get(), NULL); |
538 ExpectValid( | 538 ExpectValid( |
539 TEST_SOURCE, | 539 TEST_SOURCE, |
540 std::unique_ptr<base::Value>(new base::FundamentalValue(100)).get(), | 540 std::unique_ptr<base::Value>(new base::Value(100)).get(), |
541 schema.get(), NULL); | 541 schema.get(), NULL); |
542 ExpectValid( | 542 ExpectValid( |
543 TEST_SOURCE, | 543 TEST_SOURCE, |
544 std::unique_ptr<base::Value>(new base::FundamentalValue(88.88)).get(), | 544 std::unique_ptr<base::Value>(new base::Value(88.88)).get(), |
545 schema.get(), NULL); | 545 schema.get(), NULL); |
546 | 546 |
547 ExpectNotValid( | 547 ExpectNotValid( |
548 TEST_SOURCE, | 548 TEST_SOURCE, |
549 std::unique_ptr<base::Value>(new base::FundamentalValue(0.5)).get(), | 549 std::unique_ptr<base::Value>(new base::Value(0.5)).get(), |
550 schema.get(), NULL, std::string(), | 550 schema.get(), NULL, std::string(), |
551 JSONSchemaValidator::FormatErrorMessage( | 551 JSONSchemaValidator::FormatErrorMessage( |
552 JSONSchemaValidator::kNumberMinimum, "1")); | 552 JSONSchemaValidator::kNumberMinimum, "1")); |
553 ExpectNotValid( | 553 ExpectNotValid( |
554 TEST_SOURCE, | 554 TEST_SOURCE, |
555 std::unique_ptr<base::Value>(new base::FundamentalValue(100.1)).get(), | 555 std::unique_ptr<base::Value>(new base::Value(100.1)).get(), |
556 schema.get(), NULL, std::string(), | 556 schema.get(), NULL, std::string(), |
557 JSONSchemaValidator::FormatErrorMessage( | 557 JSONSchemaValidator::FormatErrorMessage( |
558 JSONSchemaValidator::kNumberMaximum, "100")); | 558 JSONSchemaValidator::kNumberMaximum, "100")); |
559 } | 559 } |
560 | 560 |
561 void JSONSchemaValidatorTestBase::TestTypeClassifier() { | 561 void JSONSchemaValidatorTestBase::TestTypeClassifier() { |
562 EXPECT_EQ(std::string(schema::kBoolean), | 562 EXPECT_EQ(std::string(schema::kBoolean), |
563 JSONSchemaValidator::GetJSONSchemaType( | 563 JSONSchemaValidator::GetJSONSchemaType( |
564 std::unique_ptr<base::Value>(new base::FundamentalValue(true)) | 564 std::unique_ptr<base::Value>(new base::Value(true)) |
565 .get())); | 565 .get())); |
566 EXPECT_EQ(std::string(schema::kBoolean), | 566 EXPECT_EQ(std::string(schema::kBoolean), |
567 JSONSchemaValidator::GetJSONSchemaType( | 567 JSONSchemaValidator::GetJSONSchemaType( |
568 std::unique_ptr<base::Value>(new base::FundamentalValue(false)) | 568 std::unique_ptr<base::Value>(new base::Value(false)) |
569 .get())); | 569 .get())); |
570 | 570 |
571 // It doesn't matter whether the C++ type is 'integer' or 'real'. If the | 571 // It doesn't matter whether the C++ type is 'integer' or 'real'. If the |
572 // number is integral and within the representable range of integers in | 572 // number is integral and within the representable range of integers in |
573 // double, it's classified as 'integer'. | 573 // double, it's classified as 'integer'. |
574 EXPECT_EQ( | 574 EXPECT_EQ( |
575 std::string(schema::kInteger), | 575 std::string(schema::kInteger), |
576 JSONSchemaValidator::GetJSONSchemaType( | 576 JSONSchemaValidator::GetJSONSchemaType( |
577 std::unique_ptr<base::Value>(new base::FundamentalValue(42)).get())); | 577 std::unique_ptr<base::Value>(new base::Value(42)).get())); |
578 EXPECT_EQ( | 578 EXPECT_EQ( |
579 std::string(schema::kInteger), | 579 std::string(schema::kInteger), |
580 JSONSchemaValidator::GetJSONSchemaType( | 580 JSONSchemaValidator::GetJSONSchemaType( |
581 std::unique_ptr<base::Value>(new base::FundamentalValue(0)).get())); | 581 std::unique_ptr<base::Value>(new base::Value(0)).get())); |
582 EXPECT_EQ( | 582 EXPECT_EQ( |
583 std::string(schema::kInteger), | 583 std::string(schema::kInteger), |
584 JSONSchemaValidator::GetJSONSchemaType( | 584 JSONSchemaValidator::GetJSONSchemaType( |
585 std::unique_ptr<base::Value>(new base::FundamentalValue(42)).get())); | 585 std::unique_ptr<base::Value>(new base::Value(42)).get())); |
586 EXPECT_EQ(std::string(schema::kInteger), | 586 EXPECT_EQ(std::string(schema::kInteger), |
587 JSONSchemaValidator::GetJSONSchemaType( | 587 JSONSchemaValidator::GetJSONSchemaType( |
588 std::unique_ptr<base::Value>( | 588 std::unique_ptr<base::Value>( |
589 new base::FundamentalValue(pow(2.0, DBL_MANT_DIG))) | 589 new base::Value(pow(2.0, DBL_MANT_DIG))) |
590 .get())); | 590 .get())); |
591 EXPECT_EQ(std::string(schema::kInteger), | 591 EXPECT_EQ(std::string(schema::kInteger), |
592 JSONSchemaValidator::GetJSONSchemaType( | 592 JSONSchemaValidator::GetJSONSchemaType( |
593 std::unique_ptr<base::Value>( | 593 std::unique_ptr<base::Value>( |
594 new base::FundamentalValue(pow(-2.0, DBL_MANT_DIG))) | 594 new base::Value(pow(-2.0, DBL_MANT_DIG))) |
595 .get())); | 595 .get())); |
596 | 596 |
597 // "number" is only used for non-integral numbers, or numbers beyond what | 597 // "number" is only used for non-integral numbers, or numbers beyond what |
598 // double can accurately represent. | 598 // double can accurately represent. |
599 EXPECT_EQ(std::string(schema::kNumber), | 599 EXPECT_EQ(std::string(schema::kNumber), |
600 JSONSchemaValidator::GetJSONSchemaType( | 600 JSONSchemaValidator::GetJSONSchemaType( |
601 std::unique_ptr<base::Value>(new base::FundamentalValue(88.8)) | 601 std::unique_ptr<base::Value>(new base::Value(88.8)) |
602 .get())); | 602 .get())); |
603 EXPECT_EQ(std::string(schema::kNumber), | 603 EXPECT_EQ(std::string(schema::kNumber), |
604 JSONSchemaValidator::GetJSONSchemaType( | 604 JSONSchemaValidator::GetJSONSchemaType( |
605 std::unique_ptr<base::Value>( | 605 std::unique_ptr<base::Value>( |
606 new base::FundamentalValue(pow(2.0, DBL_MANT_DIG) * 2)) | 606 new base::Value(pow(2.0, DBL_MANT_DIG) * 2)) |
607 .get())); | 607 .get())); |
608 EXPECT_EQ(std::string(schema::kNumber), | 608 EXPECT_EQ(std::string(schema::kNumber), |
609 JSONSchemaValidator::GetJSONSchemaType( | 609 JSONSchemaValidator::GetJSONSchemaType( |
610 std::unique_ptr<base::Value>( | 610 std::unique_ptr<base::Value>( |
611 new base::FundamentalValue(pow(-2.0, DBL_MANT_DIG) * 2)) | 611 new base::Value(pow(-2.0, DBL_MANT_DIG) * 2)) |
612 .get())); | 612 .get())); |
613 | 613 |
614 EXPECT_EQ( | 614 EXPECT_EQ( |
615 std::string(schema::kString), | 615 std::string(schema::kString), |
616 JSONSchemaValidator::GetJSONSchemaType( | 616 JSONSchemaValidator::GetJSONSchemaType( |
617 std::unique_ptr<base::Value>(new base::StringValue("foo")).get())); | 617 std::unique_ptr<base::Value>(new base::StringValue("foo")).get())); |
618 EXPECT_EQ(std::string(schema::kArray), | 618 EXPECT_EQ(std::string(schema::kArray), |
619 JSONSchemaValidator::GetJSONSchemaType( | 619 JSONSchemaValidator::GetJSONSchemaType( |
620 std::unique_ptr<base::Value>(new base::ListValue()).get())); | 620 std::unique_ptr<base::Value>(new base::ListValue()).get())); |
621 EXPECT_EQ( | 621 EXPECT_EQ( |
(...skipping 21 matching lines...) Expand all Loading... |
643 | 643 |
644 schema->SetString(schema::kType, schema::kString); | 644 schema->SetString(schema::kType, schema::kString); |
645 ExpectValid( | 645 ExpectValid( |
646 TEST_SOURCE, | 646 TEST_SOURCE, |
647 std::unique_ptr<base::Value>(new base::StringValue("foobar")).get(), | 647 std::unique_ptr<base::Value>(new base::StringValue("foobar")).get(), |
648 schema.get(), NULL); | 648 schema.get(), NULL); |
649 | 649 |
650 schema->SetString(schema::kType, schema::kNumber); | 650 schema->SetString(schema::kType, schema::kNumber); |
651 ExpectValid( | 651 ExpectValid( |
652 TEST_SOURCE, | 652 TEST_SOURCE, |
653 std::unique_ptr<base::Value>(new base::FundamentalValue(88.8)).get(), | 653 std::unique_ptr<base::Value>(new base::Value(88.8)).get(), |
654 schema.get(), NULL); | 654 schema.get(), NULL); |
655 ExpectValid( | 655 ExpectValid( |
656 TEST_SOURCE, | 656 TEST_SOURCE, |
657 std::unique_ptr<base::Value>(new base::FundamentalValue(42)).get(), | 657 std::unique_ptr<base::Value>(new base::Value(42)).get(), |
658 schema.get(), NULL); | 658 schema.get(), NULL); |
659 ExpectValid( | 659 ExpectValid( |
660 TEST_SOURCE, | 660 TEST_SOURCE, |
661 std::unique_ptr<base::Value>(new base::FundamentalValue(42)).get(), | 661 std::unique_ptr<base::Value>(new base::Value(42)).get(), |
662 schema.get(), NULL); | 662 schema.get(), NULL); |
663 ExpectValid(TEST_SOURCE, | 663 ExpectValid(TEST_SOURCE, |
664 std::unique_ptr<base::Value>(new base::FundamentalValue(0)).get(), | 664 std::unique_ptr<base::Value>(new base::Value(0)).get(), |
665 schema.get(), NULL); | 665 schema.get(), NULL); |
666 | 666 |
667 schema->SetString(schema::kType, schema::kInteger); | 667 schema->SetString(schema::kType, schema::kInteger); |
668 ExpectValid( | 668 ExpectValid( |
669 TEST_SOURCE, | 669 TEST_SOURCE, |
670 std::unique_ptr<base::Value>(new base::FundamentalValue(42)).get(), | 670 std::unique_ptr<base::Value>(new base::Value(42)).get(), |
671 schema.get(), NULL); | 671 schema.get(), NULL); |
672 ExpectValid( | 672 ExpectValid( |
673 TEST_SOURCE, | 673 TEST_SOURCE, |
674 std::unique_ptr<base::Value>(new base::FundamentalValue(42)).get(), | 674 std::unique_ptr<base::Value>(new base::Value(42)).get(), |
675 schema.get(), NULL); | 675 schema.get(), NULL); |
676 ExpectValid(TEST_SOURCE, | 676 ExpectValid(TEST_SOURCE, |
677 std::unique_ptr<base::Value>(new base::FundamentalValue(0)).get(), | 677 std::unique_ptr<base::Value>(new base::Value(0)).get(), |
678 schema.get(), NULL); | 678 schema.get(), NULL); |
679 ExpectValid(TEST_SOURCE, | 679 ExpectValid(TEST_SOURCE, |
680 std::unique_ptr<base::Value>( | 680 std::unique_ptr<base::Value>( |
681 new base::FundamentalValue(pow(2.0, DBL_MANT_DIG))) | 681 new base::Value(pow(2.0, DBL_MANT_DIG))) |
682 .get(), | 682 .get(), |
683 schema.get(), NULL); | 683 schema.get(), NULL); |
684 ExpectValid(TEST_SOURCE, | 684 ExpectValid(TEST_SOURCE, |
685 std::unique_ptr<base::Value>( | 685 std::unique_ptr<base::Value>( |
686 new base::FundamentalValue(pow(-2.0, DBL_MANT_DIG))) | 686 new base::Value(pow(-2.0, DBL_MANT_DIG))) |
687 .get(), | 687 .get(), |
688 schema.get(), NULL); | 688 schema.get(), NULL); |
689 | 689 |
690 schema->SetString(schema::kType, schema::kBoolean); | 690 schema->SetString(schema::kType, schema::kBoolean); |
691 ExpectValid( | 691 ExpectValid( |
692 TEST_SOURCE, | 692 TEST_SOURCE, |
693 std::unique_ptr<base::Value>(new base::FundamentalValue(false)).get(), | 693 std::unique_ptr<base::Value>(new base::Value(false)).get(), |
694 schema.get(), NULL); | 694 schema.get(), NULL); |
695 ExpectValid( | 695 ExpectValid( |
696 TEST_SOURCE, | 696 TEST_SOURCE, |
697 std::unique_ptr<base::Value>(new base::FundamentalValue(true)).get(), | 697 std::unique_ptr<base::Value>(new base::Value(true)).get(), |
698 schema.get(), NULL); | 698 schema.get(), NULL); |
699 | 699 |
700 schema->SetString(schema::kType, schema::kNull); | 700 schema->SetString(schema::kType, schema::kNull); |
701 ExpectValid(TEST_SOURCE, base::Value::CreateNullValue().get(), schema.get(), | 701 ExpectValid(TEST_SOURCE, base::Value::CreateNullValue().get(), schema.get(), |
702 NULL); | 702 NULL); |
703 | 703 |
704 // not valid | 704 // not valid |
705 schema->SetString(schema::kType, schema::kObject); | 705 schema->SetString(schema::kType, schema::kObject); |
706 ExpectNotValid( | 706 ExpectNotValid( |
707 TEST_SOURCE, std::unique_ptr<base::Value>(new base::ListValue()).get(), | 707 TEST_SOURCE, std::unique_ptr<base::Value>(new base::ListValue()).get(), |
708 schema.get(), NULL, std::string(), | 708 schema.get(), NULL, std::string(), |
709 JSONSchemaValidator::FormatErrorMessage(JSONSchemaValidator::kInvalidType, | 709 JSONSchemaValidator::FormatErrorMessage(JSONSchemaValidator::kInvalidType, |
710 schema::kObject, schema::kArray)); | 710 schema::kObject, schema::kArray)); |
711 | 711 |
712 schema->SetString(schema::kType, schema::kObject); | 712 schema->SetString(schema::kType, schema::kObject); |
713 ExpectNotValid( | 713 ExpectNotValid( |
714 TEST_SOURCE, base::Value::CreateNullValue().get(), schema.get(), NULL, | 714 TEST_SOURCE, base::Value::CreateNullValue().get(), schema.get(), NULL, |
715 std::string(), | 715 std::string(), |
716 JSONSchemaValidator::FormatErrorMessage(JSONSchemaValidator::kInvalidType, | 716 JSONSchemaValidator::FormatErrorMessage(JSONSchemaValidator::kInvalidType, |
717 schema::kObject, schema::kNull)); | 717 schema::kObject, schema::kNull)); |
718 | 718 |
719 schema->SetString(schema::kType, schema::kArray); | 719 schema->SetString(schema::kType, schema::kArray); |
720 ExpectNotValid( | 720 ExpectNotValid( |
721 TEST_SOURCE, | 721 TEST_SOURCE, |
722 std::unique_ptr<base::Value>(new base::FundamentalValue(42)).get(), | 722 std::unique_ptr<base::Value>(new base::Value(42)).get(), |
723 schema.get(), NULL, std::string(), | 723 schema.get(), NULL, std::string(), |
724 JSONSchemaValidator::FormatErrorMessage( | 724 JSONSchemaValidator::FormatErrorMessage( |
725 JSONSchemaValidator::kInvalidType, schema::kArray, schema::kInteger)); | 725 JSONSchemaValidator::kInvalidType, schema::kArray, schema::kInteger)); |
726 | 726 |
727 schema->SetString(schema::kType, schema::kString); | 727 schema->SetString(schema::kType, schema::kString); |
728 ExpectNotValid( | 728 ExpectNotValid( |
729 TEST_SOURCE, | 729 TEST_SOURCE, |
730 std::unique_ptr<base::Value>(new base::FundamentalValue(42)).get(), | 730 std::unique_ptr<base::Value>(new base::Value(42)).get(), |
731 schema.get(), NULL, std::string(), | 731 schema.get(), NULL, std::string(), |
732 JSONSchemaValidator::FormatErrorMessage(JSONSchemaValidator::kInvalidType, | 732 JSONSchemaValidator::FormatErrorMessage(JSONSchemaValidator::kInvalidType, |
733 schema::kString, | 733 schema::kString, |
734 schema::kInteger)); | 734 schema::kInteger)); |
735 | 735 |
736 schema->SetString(schema::kType, schema::kNumber); | 736 schema->SetString(schema::kType, schema::kNumber); |
737 ExpectNotValid( | 737 ExpectNotValid( |
738 TEST_SOURCE, | 738 TEST_SOURCE, |
739 std::unique_ptr<base::Value>(new base::StringValue("42")).get(), | 739 std::unique_ptr<base::Value>(new base::StringValue("42")).get(), |
740 schema.get(), NULL, std::string(), | 740 schema.get(), NULL, std::string(), |
741 JSONSchemaValidator::FormatErrorMessage( | 741 JSONSchemaValidator::FormatErrorMessage( |
742 JSONSchemaValidator::kInvalidType, schema::kNumber, schema::kString)); | 742 JSONSchemaValidator::kInvalidType, schema::kNumber, schema::kString)); |
743 | 743 |
744 schema->SetString(schema::kType, schema::kInteger); | 744 schema->SetString(schema::kType, schema::kInteger); |
745 ExpectNotValid( | 745 ExpectNotValid( |
746 TEST_SOURCE, | 746 TEST_SOURCE, |
747 std::unique_ptr<base::Value>(new base::FundamentalValue(88.8)).get(), | 747 std::unique_ptr<base::Value>(new base::Value(88.8)).get(), |
748 schema.get(), NULL, std::string(), | 748 schema.get(), NULL, std::string(), |
749 JSONSchemaValidator::kInvalidTypeIntegerNumber); | 749 JSONSchemaValidator::kInvalidTypeIntegerNumber); |
750 | 750 |
751 schema->SetString(schema::kType, schema::kBoolean); | 751 schema->SetString(schema::kType, schema::kBoolean); |
752 ExpectNotValid( | 752 ExpectNotValid( |
753 TEST_SOURCE, | 753 TEST_SOURCE, |
754 std::unique_ptr<base::Value>(new base::FundamentalValue(1)).get(), | 754 std::unique_ptr<base::Value>(new base::Value(1)).get(), |
755 schema.get(), NULL, std::string(), | 755 schema.get(), NULL, std::string(), |
756 JSONSchemaValidator::FormatErrorMessage(JSONSchemaValidator::kInvalidType, | 756 JSONSchemaValidator::FormatErrorMessage(JSONSchemaValidator::kInvalidType, |
757 schema::kBoolean, | 757 schema::kBoolean, |
758 schema::kInteger)); | 758 schema::kInteger)); |
759 | 759 |
760 schema->SetString(schema::kType, schema::kNull); | 760 schema->SetString(schema::kType, schema::kNull); |
761 ExpectNotValid( | 761 ExpectNotValid( |
762 TEST_SOURCE, | 762 TEST_SOURCE, |
763 std::unique_ptr<base::Value>(new base::FundamentalValue(false)).get(), | 763 std::unique_ptr<base::Value>(new base::Value(false)).get(), |
764 schema.get(), NULL, std::string(), | 764 schema.get(), NULL, std::string(), |
765 JSONSchemaValidator::FormatErrorMessage(JSONSchemaValidator::kInvalidType, | 765 JSONSchemaValidator::FormatErrorMessage(JSONSchemaValidator::kInvalidType, |
766 schema::kNull, schema::kBoolean)); | 766 schema::kNull, schema::kBoolean)); |
767 } | 767 } |
OLD | NEW |