spec/xml/encoding_spec.rb in roxml-3.1.5 vs spec/xml/encoding_spec.rb in roxml-3.1.6
- old
+ new
@@ -1,22 +1,53 @@
-require 'spec/spec_helper'
+# encoding: utf-8
+require_relative './../spec_helper'
describe ROXML, "encoding" do
class TestResult
include ROXML
xml_accessor :message
end
-
+
context "when provided non-latin characters" do
it "should output those characters as input via methods" do
res = TestResult.new
res.message = "sadfk одловыа jjklsd " #random russian and english charecters
- res.to_xml.at('message').inner_text.should == "sadfk одловыа jjklsd "
+ doc = ROXML::XML::Document.new
+ doc.root = res.to_xml
+ if defined?(Nokogiri)
+ doc.at('message').inner_text
+ else
+ doc.find_first('message').inner_xml
+ end.should == "sadfk одловыа jjklsd "
end
-
+
it "should output those characters as input via xml" do
res = TestResult.from_xml("<test_result><message>sadfk одловыа jjklsd </message></test_result>")
- res.to_xml.at('message').inner_text.should == "sadfk одловыа jjklsd "
+ doc = ROXML::XML::Document.new
+ doc.root = res.to_xml
+ if defined?(Nokogiri)
+ doc.at('message').inner_text
+ else
+ doc.find_first('message').inner_xml
+ end.should == "sadfk одловыа jjklsd "
end
+
+ it "should allow override via the document" do
+ res = TestResult.from_xml("<test_result><message>sadfk одловыа jjklsd </message></test_result>")
+ if defined?(Nokogiri)
+ xml = res.to_xml
+ doc = xml.document
+ doc.root = xml
+ doc.encoding = 'ISO-8859-1'
+ doc.to_s.should include('ISO-8859-1')
+ doc.at('message').inner_text
+ else
+ doc = LibXML::XML::Document.new
+ doc.encoding = LibXML::XML::Encoding::ASCII
+ doc.root = res.to_xml
+ pending "Libxml bug"
+ doc.to_s.should include('ISO-8859-1')
+ doc.find_first('message').inner_xml
+ end.should == "sadfk одловыа jjklsd "
+ end
end
-
-end
\ No newline at end of file
+end