OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "chrome/common/json_schema_validator_unittest_base.h" | 5 #include "chrome/common/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 | 10 |
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
434 ExpectValid(TEST_SOURCE, | 434 ExpectValid(TEST_SOURCE, |
435 scoped_ptr<Value>(Value::CreateIntegerValue(1)).get(), | 435 scoped_ptr<Value>(Value::CreateIntegerValue(1)).get(), |
436 schema.get(), NULL); | 436 schema.get(), NULL); |
437 ExpectValid(TEST_SOURCE, | 437 ExpectValid(TEST_SOURCE, |
438 scoped_ptr<Value>(Value::CreateIntegerValue(50)).get(), | 438 scoped_ptr<Value>(Value::CreateIntegerValue(50)).get(), |
439 schema.get(), NULL); | 439 schema.get(), NULL); |
440 ExpectValid(TEST_SOURCE, | 440 ExpectValid(TEST_SOURCE, |
441 scoped_ptr<Value>(Value::CreateIntegerValue(100)).get(), | 441 scoped_ptr<Value>(Value::CreateIntegerValue(100)).get(), |
442 schema.get(), NULL); | 442 schema.get(), NULL); |
443 ExpectValid(TEST_SOURCE, | 443 ExpectValid(TEST_SOURCE, |
444 scoped_ptr<Value>(Value::CreateRealValue(88.88)).get(), | 444 scoped_ptr<Value>(Value::CreateDoubleValue(88.88)).get(), |
445 schema.get(), NULL); | 445 schema.get(), NULL); |
446 | 446 |
447 ExpectNotValid( | 447 ExpectNotValid( |
448 TEST_SOURCE, | 448 TEST_SOURCE, |
449 scoped_ptr<Value>(Value::CreateRealValue(0.5)).get(), | 449 scoped_ptr<Value>(Value::CreateDoubleValue(0.5)).get(), |
450 schema.get(), NULL, "", | 450 schema.get(), NULL, "", |
451 JSONSchemaValidator::FormatErrorMessage( | 451 JSONSchemaValidator::FormatErrorMessage( |
452 JSONSchemaValidator::kNumberMinimum, "1")); | 452 JSONSchemaValidator::kNumberMinimum, "1")); |
453 ExpectNotValid( | 453 ExpectNotValid( |
454 TEST_SOURCE, | 454 TEST_SOURCE, |
455 scoped_ptr<Value>(Value::CreateRealValue(100.1)).get(), | 455 scoped_ptr<Value>(Value::CreateDoubleValue(100.1)).get(), |
456 schema.get(), NULL, "", | 456 schema.get(), NULL, "", |
457 JSONSchemaValidator::FormatErrorMessage( | 457 JSONSchemaValidator::FormatErrorMessage( |
458 JSONSchemaValidator::kNumberMaximum, "100")); | 458 JSONSchemaValidator::kNumberMaximum, "100")); |
459 } | 459 } |
460 | 460 |
461 void JSONSchemaValidatorTestBase::TestTypeClassifier() { | 461 void JSONSchemaValidatorTestBase::TestTypeClassifier() { |
462 EXPECT_EQ("boolean", JSONSchemaValidator::GetJSONSchemaType( | 462 EXPECT_EQ("boolean", JSONSchemaValidator::GetJSONSchemaType( |
463 scoped_ptr<Value>(Value::CreateBooleanValue(true)).get())); | 463 scoped_ptr<Value>(Value::CreateBooleanValue(true)).get())); |
464 EXPECT_EQ("boolean", JSONSchemaValidator::GetJSONSchemaType( | 464 EXPECT_EQ("boolean", JSONSchemaValidator::GetJSONSchemaType( |
465 scoped_ptr<Value>(Value::CreateBooleanValue(false)).get())); | 465 scoped_ptr<Value>(Value::CreateBooleanValue(false)).get())); |
466 | 466 |
467 // It doesn't matter whether the C++ type is 'integer' or 'real'. If the | 467 // It doesn't matter whether the C++ type is 'integer' or 'real'. If the |
468 // number is integral and within the representable range of integers in | 468 // number is integral and within the representable range of integers in |
469 // double, it's classified as 'integer'. | 469 // double, it's classified as 'integer'. |
470 EXPECT_EQ("integer", JSONSchemaValidator::GetJSONSchemaType( | 470 EXPECT_EQ("integer", JSONSchemaValidator::GetJSONSchemaType( |
471 scoped_ptr<Value>(Value::CreateIntegerValue(42)).get())); | 471 scoped_ptr<Value>(Value::CreateIntegerValue(42)).get())); |
472 EXPECT_EQ("integer", JSONSchemaValidator::GetJSONSchemaType( | 472 EXPECT_EQ("integer", JSONSchemaValidator::GetJSONSchemaType( |
473 scoped_ptr<Value>(Value::CreateIntegerValue(0)).get())); | 473 scoped_ptr<Value>(Value::CreateIntegerValue(0)).get())); |
474 EXPECT_EQ("integer", JSONSchemaValidator::GetJSONSchemaType( | 474 EXPECT_EQ("integer", JSONSchemaValidator::GetJSONSchemaType( |
475 scoped_ptr<Value>(Value::CreateRealValue(42)).get())); | 475 scoped_ptr<Value>(Value::CreateDoubleValue(42)).get())); |
476 EXPECT_EQ("integer", JSONSchemaValidator::GetJSONSchemaType( | 476 EXPECT_EQ("integer", JSONSchemaValidator::GetJSONSchemaType( |
477 scoped_ptr<Value>( | 477 scoped_ptr<Value>( |
478 Value::CreateRealValue(pow(2.0, DBL_MANT_DIG))).get())); | 478 Value::CreateDoubleValue(pow(2.0, DBL_MANT_DIG))).get())); |
479 EXPECT_EQ("integer", JSONSchemaValidator::GetJSONSchemaType( | 479 EXPECT_EQ("integer", JSONSchemaValidator::GetJSONSchemaType( |
480 scoped_ptr<Value>( | 480 scoped_ptr<Value>( |
481 Value::CreateRealValue(pow(-2.0, DBL_MANT_DIG))).get())); | 481 Value::CreateDoubleValue(pow(-2.0, DBL_MANT_DIG))).get())); |
482 | 482 |
483 // "number" is only used for non-integral numbers, or numbers beyond what | 483 // "number" is only used for non-integral numbers, or numbers beyond what |
484 // double can accurately represent. | 484 // double can accurately represent. |
485 EXPECT_EQ("number", JSONSchemaValidator::GetJSONSchemaType( | 485 EXPECT_EQ("number", JSONSchemaValidator::GetJSONSchemaType( |
486 scoped_ptr<Value>(Value::CreateRealValue(88.8)).get())); | 486 scoped_ptr<Value>(Value::CreateDoubleValue(88.8)).get())); |
487 EXPECT_EQ("number", JSONSchemaValidator::GetJSONSchemaType( | 487 EXPECT_EQ("number", JSONSchemaValidator::GetJSONSchemaType( |
488 scoped_ptr<Value>(Value::CreateRealValue( | 488 scoped_ptr<Value>(Value::CreateDoubleValue( |
489 pow(2.0, DBL_MANT_DIG) * 2)).get())); | 489 pow(2.0, DBL_MANT_DIG) * 2)).get())); |
490 EXPECT_EQ("number", JSONSchemaValidator::GetJSONSchemaType( | 490 EXPECT_EQ("number", JSONSchemaValidator::GetJSONSchemaType( |
491 scoped_ptr<Value>(Value::CreateRealValue( | 491 scoped_ptr<Value>(Value::CreateDoubleValue( |
492 pow(-2.0, DBL_MANT_DIG) * 2)).get())); | 492 pow(-2.0, DBL_MANT_DIG) * 2)).get())); |
493 | 493 |
494 EXPECT_EQ("string", JSONSchemaValidator::GetJSONSchemaType( | 494 EXPECT_EQ("string", JSONSchemaValidator::GetJSONSchemaType( |
495 scoped_ptr<Value>(Value::CreateStringValue("foo")).get())); | 495 scoped_ptr<Value>(Value::CreateStringValue("foo")).get())); |
496 EXPECT_EQ("array", JSONSchemaValidator::GetJSONSchemaType( | 496 EXPECT_EQ("array", JSONSchemaValidator::GetJSONSchemaType( |
497 scoped_ptr<Value>(new ListValue()).get())); | 497 scoped_ptr<Value>(new ListValue()).get())); |
498 EXPECT_EQ("object", JSONSchemaValidator::GetJSONSchemaType( | 498 EXPECT_EQ("object", JSONSchemaValidator::GetJSONSchemaType( |
499 scoped_ptr<Value>(new DictionaryValue()).get())); | 499 scoped_ptr<Value>(new DictionaryValue()).get())); |
500 EXPECT_EQ("null", JSONSchemaValidator::GetJSONSchemaType( | 500 EXPECT_EQ("null", JSONSchemaValidator::GetJSONSchemaType( |
501 scoped_ptr<Value>(Value::CreateNullValue()).get())); | 501 scoped_ptr<Value>(Value::CreateNullValue()).get())); |
(...skipping 11 matching lines...) Expand all Loading... |
513 ExpectValid(TEST_SOURCE, scoped_ptr<Value>(new ListValue()).get(), | 513 ExpectValid(TEST_SOURCE, scoped_ptr<Value>(new ListValue()).get(), |
514 schema.get(), NULL); | 514 schema.get(), NULL); |
515 | 515 |
516 schema->SetString("type", "string"); | 516 schema->SetString("type", "string"); |
517 ExpectValid(TEST_SOURCE, | 517 ExpectValid(TEST_SOURCE, |
518 scoped_ptr<Value>(Value::CreateStringValue("foobar")).get(), | 518 scoped_ptr<Value>(Value::CreateStringValue("foobar")).get(), |
519 schema.get(), NULL); | 519 schema.get(), NULL); |
520 | 520 |
521 schema->SetString("type", "number"); | 521 schema->SetString("type", "number"); |
522 ExpectValid(TEST_SOURCE, | 522 ExpectValid(TEST_SOURCE, |
523 scoped_ptr<Value>(Value::CreateRealValue(88.8)).get(), | 523 scoped_ptr<Value>(Value::CreateDoubleValue(88.8)).get(), |
524 schema.get(), NULL); | 524 schema.get(), NULL); |
525 ExpectValid(TEST_SOURCE, | 525 ExpectValid(TEST_SOURCE, |
526 scoped_ptr<Value>(Value::CreateRealValue(42)).get(), | 526 scoped_ptr<Value>(Value::CreateDoubleValue(42)).get(), |
527 schema.get(), NULL); | 527 schema.get(), NULL); |
528 ExpectValid(TEST_SOURCE, | 528 ExpectValid(TEST_SOURCE, |
529 scoped_ptr<Value>(Value::CreateIntegerValue(42)).get(), | 529 scoped_ptr<Value>(Value::CreateIntegerValue(42)).get(), |
530 schema.get(), NULL); | 530 schema.get(), NULL); |
531 ExpectValid(TEST_SOURCE, | 531 ExpectValid(TEST_SOURCE, |
532 scoped_ptr<Value>(Value::CreateIntegerValue(0)).get(), | 532 scoped_ptr<Value>(Value::CreateIntegerValue(0)).get(), |
533 schema.get(), NULL); | 533 schema.get(), NULL); |
534 | 534 |
535 schema->SetString("type", "integer"); | 535 schema->SetString("type", "integer"); |
536 ExpectValid(TEST_SOURCE, | 536 ExpectValid(TEST_SOURCE, |
537 scoped_ptr<Value>(Value::CreateIntegerValue(42)).get(), | 537 scoped_ptr<Value>(Value::CreateIntegerValue(42)).get(), |
538 schema.get(), NULL); | 538 schema.get(), NULL); |
539 ExpectValid(TEST_SOURCE, | 539 ExpectValid(TEST_SOURCE, |
540 scoped_ptr<Value>(Value::CreateRealValue(42)).get(), | 540 scoped_ptr<Value>(Value::CreateDoubleValue(42)).get(), |
541 schema.get(), NULL); | 541 schema.get(), NULL); |
542 ExpectValid(TEST_SOURCE, | 542 ExpectValid(TEST_SOURCE, |
543 scoped_ptr<Value>(Value::CreateIntegerValue(0)).get(), | 543 scoped_ptr<Value>(Value::CreateIntegerValue(0)).get(), |
544 schema.get(), NULL); | 544 schema.get(), NULL); |
545 ExpectValid(TEST_SOURCE, | 545 ExpectValid(TEST_SOURCE, |
546 scoped_ptr<Value>( | 546 scoped_ptr<Value>( |
547 Value::CreateRealValue(pow(2.0, DBL_MANT_DIG))).get(), | 547 Value::CreateDoubleValue(pow(2.0, DBL_MANT_DIG))).get(), |
548 schema.get(), NULL); | 548 schema.get(), NULL); |
549 ExpectValid(TEST_SOURCE, | 549 ExpectValid(TEST_SOURCE, |
550 scoped_ptr<Value>( | 550 scoped_ptr<Value>( |
551 Value::CreateRealValue(pow(-2.0, DBL_MANT_DIG))).get(), | 551 Value::CreateDoubleValue(pow(-2.0, DBL_MANT_DIG))).get(), |
552 schema.get(), NULL); | 552 schema.get(), NULL); |
553 | 553 |
554 schema->SetString("type", "boolean"); | 554 schema->SetString("type", "boolean"); |
555 ExpectValid(TEST_SOURCE, | 555 ExpectValid(TEST_SOURCE, |
556 scoped_ptr<Value>(Value::CreateBooleanValue(false)).get(), | 556 scoped_ptr<Value>(Value::CreateBooleanValue(false)).get(), |
557 schema.get(), NULL); | 557 schema.get(), NULL); |
558 ExpectValid(TEST_SOURCE, | 558 ExpectValid(TEST_SOURCE, |
559 scoped_ptr<Value>(Value::CreateBooleanValue(true)).get(), | 559 scoped_ptr<Value>(Value::CreateBooleanValue(true)).get(), |
560 schema.get(), NULL); | 560 schema.get(), NULL); |
561 | 561 |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
593 | 593 |
594 schema->SetString("type", "number"); | 594 schema->SetString("type", "number"); |
595 ExpectNotValid(TEST_SOURCE, | 595 ExpectNotValid(TEST_SOURCE, |
596 scoped_ptr<Value>(Value::CreateStringValue("42")).get(), | 596 scoped_ptr<Value>(Value::CreateStringValue("42")).get(), |
597 schema.get(), NULL, "", | 597 schema.get(), NULL, "", |
598 JSONSchemaValidator::FormatErrorMessage( | 598 JSONSchemaValidator::FormatErrorMessage( |
599 JSONSchemaValidator::kInvalidType, "number", "string")); | 599 JSONSchemaValidator::kInvalidType, "number", "string")); |
600 | 600 |
601 schema->SetString("type", "integer"); | 601 schema->SetString("type", "integer"); |
602 ExpectNotValid(TEST_SOURCE, | 602 ExpectNotValid(TEST_SOURCE, |
603 scoped_ptr<Value>(Value::CreateRealValue(88.8)).get(), | 603 scoped_ptr<Value>(Value::CreateDoubleValue(88.8)).get(), |
604 schema.get(), NULL, "", | 604 schema.get(), NULL, "", |
605 JSONSchemaValidator::FormatErrorMessage( | 605 JSONSchemaValidator::FormatErrorMessage( |
606 JSONSchemaValidator::kInvalidType, "integer", "number")); | 606 JSONSchemaValidator::kInvalidType, "integer", "number")); |
607 | 607 |
608 schema->SetString("type", "integer"); | 608 schema->SetString("type", "integer"); |
609 ExpectNotValid(TEST_SOURCE, | 609 ExpectNotValid(TEST_SOURCE, |
610 scoped_ptr<Value>(Value::CreateRealValue(88.8)).get(), | 610 scoped_ptr<Value>(Value::CreateDoubleValue(88.8)).get(), |
611 schema.get(), NULL, "", | 611 schema.get(), NULL, "", |
612 JSONSchemaValidator::FormatErrorMessage( | 612 JSONSchemaValidator::FormatErrorMessage( |
613 JSONSchemaValidator::kInvalidType, "integer", "number")); | 613 JSONSchemaValidator::kInvalidType, "integer", "number")); |
614 | 614 |
615 schema->SetString("type", "boolean"); | 615 schema->SetString("type", "boolean"); |
616 ExpectNotValid(TEST_SOURCE, | 616 ExpectNotValid(TEST_SOURCE, |
617 scoped_ptr<Value>(Value::CreateIntegerValue(1)).get(), | 617 scoped_ptr<Value>(Value::CreateIntegerValue(1)).get(), |
618 schema.get(), NULL, "", | 618 schema.get(), NULL, "", |
619 JSONSchemaValidator::FormatErrorMessage( | 619 JSONSchemaValidator::FormatErrorMessage( |
620 JSONSchemaValidator::kInvalidType, "boolean", "integer")); | 620 JSONSchemaValidator::kInvalidType, "boolean", "integer")); |
621 | 621 |
622 schema->SetString("type", "null"); | 622 schema->SetString("type", "null"); |
623 ExpectNotValid(TEST_SOURCE, | 623 ExpectNotValid(TEST_SOURCE, |
624 scoped_ptr<Value>(Value::CreateBooleanValue(false)).get(), | 624 scoped_ptr<Value>(Value::CreateBooleanValue(false)).get(), |
625 schema.get(), NULL, "", | 625 schema.get(), NULL, "", |
626 JSONSchemaValidator::FormatErrorMessage( | 626 JSONSchemaValidator::FormatErrorMessage( |
627 JSONSchemaValidator::kInvalidType, "null", "boolean")); | 627 JSONSchemaValidator::kInvalidType, "null", "boolean")); |
628 } | 628 } |
OLD | NEW |