@@ -736,4 +736,69 @@ public function getTestsForOctalNumbers()
736
736
'negative octal number ' => [-28 , '-034 ' ],
737
737
];
738
738
}
739
+
740
+ /**
741
+ * @dataProvider unquotedExclamationMarkThrowsProvider
742
+ */
743
+ public function testUnquotedExclamationMarkThrows ($ value )
744
+ {
745
+ $ this ->expectException (ParseException::class);
746
+ $ this ->expectExceptionMessageRegExp ('/^Using the unquoted scalar value "!" is not supported\. You must quote it at line 1/ ' );
747
+
748
+ Inline::parse ($ value );
749
+ }
750
+
751
+ public function unquotedExclamationMarkThrowsProvider ()
752
+ {
753
+ return [
754
+ ['! ' ],
755
+ ['! ' ],
756
+ ['! ' ],
757
+ [' ! ' ],
758
+ ['[!] ' ],
759
+ ['[! ] ' ],
760
+ ['[! ] ' ],
761
+ ['[!, "foo"] ' ],
762
+ ['["foo", !, "ccc"] ' ],
763
+ ['{foo: !} ' ],
764
+ ['{foo: !} ' ],
765
+ ['{foo: !, bar: "ccc"} ' ],
766
+ ['{bar: "ccc", foo: ! } ' ],
767
+ ['!]]] ' ],
768
+ ['!} ' ],
769
+ ['!,}foo,] ' ],
770
+ ['! [!] ' ],
771
+ ];
772
+ }
773
+
774
+ /**
775
+ * @dataProvider quotedExclamationMarkProvider
776
+ */
777
+ public function testQuotedExclamationMark ($ expected , $ value )
778
+ {
779
+ $ this ->assertSame ($ expected , Inline::parse ($ value ));
780
+ }
781
+
782
+ // This provider should ideally stay consistent with unquotedExclamationMarkThrowsProvider
783
+ public function quotedExclamationMarkProvider ()
784
+ {
785
+ return [
786
+ ['! ' , '"!" ' ],
787
+ ['! ' , '"! " ' ],
788
+ [' ! ' , '" !" ' ],
789
+ [' ! ' , '" ! " ' ],
790
+ [['! ' ], '["!"] ' ],
791
+ [['! ' ], '["! "] ' ],
792
+ [['! ' , 'foo ' ], '["!", "foo"] ' ],
793
+ [['foo ' , '! ' , 'ccc ' ], '["foo", "!", "ccc"] ' ],
794
+ [['foo ' => '! ' ], '{foo: "!"} ' ],
795
+ [['foo ' => ' ! ' ], '{foo: " !"} ' ],
796
+ [['foo ' => '! ' , 'bar ' => 'ccc ' ], '{foo: "!", bar: "ccc"} ' ],
797
+ [['bar ' => 'ccc ' , 'foo ' => '! ' ], '{bar: "ccc", foo: "! "} ' ],
798
+ ['!]]] ' , '"!]]]" ' ],
799
+ ['!} ' , '"!}" ' ],
800
+ ['!,}foo,] ' , '"!,}foo,]" ' ],
801
+ [['! ' ], '! ["!"] ' ],
802
+ ];
803
+ }
739
804
}
0 commit comments