@@ -513,6 +513,96 @@ TEST(ValidatorTest, StringInvalidUtf8Long) {
513
513
ASSERT_VELOCYPACK_EXCEPTION (validator.validate (value.c_str (), value.size ()), Exception::InvalidUtf8Sequence);
514
514
}
515
515
516
+ TEST (ValidatorTest, StringValidUtf8ObjectWithValidation) {
517
+ std::string const value (" \x0b\x08\x01\x41\x41\x41\x41\x03 " , 8 );
518
+
519
+ Options options;
520
+ options.validateUtf8Strings = true ;
521
+ Validator validator (&options);
522
+ ASSERT_TRUE (validator.validate (value.c_str (), value.size ()));
523
+ }
524
+
525
+ TEST (ValidatorTest, StringInvalidUtf8ObjectKeyWithValidation) {
526
+ std::string const value (" \x0b\x08\x01\x41\x80\x41\x41\x03 " , 8 );
527
+
528
+ Options options;
529
+ options.validateUtf8Strings = true ;
530
+ Validator validator (&options);
531
+ ASSERT_VELOCYPACK_EXCEPTION (validator.validate (value.c_str (), value.size ()), Exception::InvalidUtf8Sequence);
532
+ }
533
+
534
+ TEST (ValidatorTest, StringInvalidUtf8ObjectValueWithValidation) {
535
+ std::string const value (" \x0b\x08\x01\x41\x41\x41\x80\x03 " , 8 );
536
+
537
+ Options options;
538
+ options.validateUtf8Strings = true ;
539
+ Validator validator (&options);
540
+ ASSERT_VELOCYPACK_EXCEPTION (validator.validate (value.c_str (), value.size ()), Exception::InvalidUtf8Sequence);
541
+ }
542
+
543
+ TEST (ValidatorTest, StringInvalidUtf8ObjectLongKeyWithValidation) {
544
+ std::string const value (" \x0b\x10\x01\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x80\x41\x41\x03 " , 16 );
545
+
546
+ Options options;
547
+ options.validateUtf8Strings = true ;
548
+ Validator validator (&options);
549
+ ASSERT_VELOCYPACK_EXCEPTION (validator.validate (value.c_str (), value.size ()), Exception::InvalidUtf8Sequence);
550
+ }
551
+
552
+ TEST (ValidatorTest, StringInvalidUtf8ObjectLongValueWithValidation) {
553
+ std::string const value (" \x0b\x10\x01\x41\x41\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x80\x03 " , 16 );
554
+
555
+ Options options;
556
+ options.validateUtf8Strings = true ;
557
+ Validator validator (&options);
558
+ ASSERT_VELOCYPACK_EXCEPTION (validator.validate (value.c_str (), value.size ()), Exception::InvalidUtf8Sequence);
559
+ }
560
+
561
+ TEST (ValidatorTest, StringValidUtf8CompactObjectWithValidation) {
562
+ std::string const value (" \x14\x07\x41\x41\x41\x41\x01 " , 7 );
563
+
564
+ Options options;
565
+ options.validateUtf8Strings = true ;
566
+ Validator validator (&options);
567
+ ASSERT_TRUE (validator.validate (value.c_str (), value.size ()));
568
+ }
569
+
570
+ TEST (ValidatorTest, StringInvalidUtf8CompactObjectKeyWithValidation) {
571
+ std::string const value (" \x14\x07\x41\x80\x41\x41\x01 " , 7 );
572
+
573
+ Options options;
574
+ options.validateUtf8Strings = true ;
575
+ Validator validator (&options);
576
+ ASSERT_VELOCYPACK_EXCEPTION (validator.validate (value.c_str (), value.size ()), Exception::InvalidUtf8Sequence);
577
+ }
578
+
579
+ TEST (ValidatorTest, StringInvalidUtf8CompactObjectLongKeyWithValidation) {
580
+ std::string const value (" \x14\x0f\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x80\x41\x41\x01 " , 15 );
581
+
582
+ Options options;
583
+ options.validateUtf8Strings = true ;
584
+ Validator validator (&options);
585
+ ASSERT_VELOCYPACK_EXCEPTION (validator.validate (value.c_str (), value.size ()), Exception::InvalidUtf8Sequence);
586
+ }
587
+
588
+ TEST (ValidatorTest, StringInvalidUtf8CompactObjectValueWithValidation) {
589
+ std::string const value (" \x14\x07\x41\x41\x41\x80\x01 " , 7 );
590
+
591
+ Options options;
592
+ options.validateUtf8Strings = true ;
593
+ Validator validator (&options);
594
+ ASSERT_VELOCYPACK_EXCEPTION (validator.validate (value.c_str (), value.size ()), Exception::InvalidUtf8Sequence);
595
+ }
596
+
597
+ TEST (ValidatorTest, StringInvalidUtf8CompactLongObjectValueWithValidation) {
598
+ std::string const value (" \x14\x0f\x41\x41\xbf\x01\x00\x00\x00\x00\x00\x00\x00\x80\x01 " , 15 );
599
+
600
+ Options options;
601
+ options.validateUtf8Strings = true ;
602
+ Validator validator (&options);
603
+ ASSERT_VELOCYPACK_EXCEPTION (validator.validate (value.c_str (), value.size ()), Exception::InvalidUtf8Sequence);
604
+ }
605
+
516
606
TEST (ValidatorTest, LongStringEmpty) {
517
607
std::string const value (" \xbf\x00\x00\x00\x00\x00\x00\x00\x00 " , 9 );
518
608
0 commit comments