@@ -12,6 +12,10 @@ def self.literal(selector)
1212 when :plain then [ 'Hello' . freeze ]
1313 when :empty_lang then [ '' . freeze , { language : :en } ]
1414 when :plain_lang then [ 'Hello' . freeze , { language : :en } ]
15+ # langString language: must not contain spaces
16+ when :wrong_lang then [ 'WrongLang' . freeze , { language : "en f" } ]
17+ # langString language: must be non-empty valid language
18+ when :unset_lang then [ 'NoLanguage' . freeze , { datatype : RDF ::langString } ]
1519 when :string then [ 'String.freeze' , { datatype : RDF ::XSD . string } ]
1620 when :false then [ false ]
1721 when :true then [ true ]
@@ -33,6 +37,7 @@ def self.literals(*selector)
3337 when :all_simple then [ :empty , :plain , :string ] . map { |s | literal ( s ) }
3438 when :all_plain_lang then [ :empty_lang , :plain_lang ] . map { |s | literal ( s ) }
3539 when :all_native then [ :false , :true , :int , :long , :double , :time , :date , :datetime ] . map { |s | literal ( s ) }
40+ when :all_invalid_lang then [ :wrong_lang , :unset_lang ] . map { |s | literal ( s ) }
3641 when :all_plain then literals ( :all_simple , :all_plain_lang )
3742 else literals ( :all_plain , :all_native )
3843 end
@@ -347,12 +352,20 @@ def self.literals(*selector)
347352 end
348353 end
349354
350- it "invalidates ['foo', datatype: 'rdf:langString']" do
351- expect ( RDF ::Literal . new ( "foo" , datatype : RDF ::langString ) ) . not_to be_valid
355+ literals ( :all_invalid_lang ) . each do |args |
356+ it "invalidates #{ args . inspect } " do
357+ expect ( RDF ::Literal . new ( *args ) ) . not_to be_valid
358+ end
352359 end
353360
354- it "invalidates ['foo', :language => 'en f']" do
355- expect ( RDF ::Literal . new ( "foo" , language : "en f" ) ) . not_to be_valid
361+ # test to make sure extra validation is not needed
362+ context "when language? && !@language" do
363+ langString = RDF ::Literal . new ( "hello" , datatype : RDF ::langString )
364+ it "should be invalid" do
365+ expect ( langString . language? ) . to be true
366+ expect ( !langString . instance_variable_get ( "@language" ) ) . to be true
367+ expect ( langString ) . not_to be_valid
368+ end
356369 end
357370 end
358371
0 commit comments