From 43370052ef46cc9422a18cbf31737ab923e42051 Mon Sep 17 00:00:00 2001 From: Mike Dalessio Date: Wed, 9 Mar 2011 11:10:51 -0500 Subject: [PATCH] default output of XML on JRuby is no longer formatted due to inconsistent whitespace handling. Closes #415 --- CHANGELOG.rdoc | 5 +++++ lib/nokogiri/xml/node/save_options.rb | 6 +++++- test/xml/node/test_save_options.rb | 12 ++++++++++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.rdoc b/CHANGELOG.rdoc index 9191e79f62..d1c75deabc 100644 --- a/CHANGELOG.rdoc +++ b/CHANGELOG.rdoc @@ -4,6 +4,11 @@ * extracted sets of Node::SaveOptions into Node::SaveOptions::DEFAULT_{X,H,XH}TML (refactor) +* Bugfixes + + * default output of XML on JRuby is no longer formatted due to + inconsistent whitespace handling. #415 + == 1.5.0 beta3 / 2010/12/02 * Notes diff --git a/lib/nokogiri/xml/node/save_options.rb b/lib/nokogiri/xml/node/save_options.rb index ff7fc6ec33..3e4565aab6 100644 --- a/lib/nokogiri/xml/node/save_options.rb +++ b/lib/nokogiri/xml/node/save_options.rb @@ -20,7 +20,11 @@ class SaveOptions AS_HTML = 64 # the default for XML documents - DEFAULT_XML = FORMAT | AS_XML + if Nokogiri.jruby? + DEFAULT_XML = AS_XML # https://github.com/tenderlove/nokogiri/issues/#issue/415 + else + DEFAULT_XML = FORMAT | AS_XML + end # the default for HTML document DEFAULT_HTML = FORMAT | NO_DECLARATION | NO_EMPTY_TAGS | AS_HTML # the default for XHTML document diff --git a/test/xml/node/test_save_options.rb b/test/xml/node/test_save_options.rb index df7d8281ef..f79d46b597 100644 --- a/test/xml/node/test_save_options.rb +++ b/test/xml/node/test_save_options.rb @@ -5,14 +5,22 @@ module XML class Node class TestSaveOptions < Nokogiri::TestCase SaveOptions.constants.each do |constant| - class_eval %{ + class_eval <<-EOEVAL def test_predicate_#{constant.downcase} options = SaveOptions.new(SaveOptions::#{constant}) assert options.#{constant.downcase}? assert SaveOptions.new.#{constant.downcase}.#{constant.downcase}? end - } + EOEVAL + end + + def test_default_xml_save_options + if Nokogiri.jruby? + assert_equal 0, (SaveOptions::DEFAULT_XML & SaveOptions::FORMAT) + else + assert_equal SaveOptions::FORMAT, (SaveOptions::DEFAULT_XML & SaveOptions::FORMAT) + end end end end