require 'rexml/document'
require 'rexml/formatters/transitive'
require File.dirname(__FILE__) + '/../../../spec_helper'
# Maybe this can be cleaned
describe "REXML::Document#write" do
before :each do
@d = REXML::Document.new
city = REXML::Element.new "Springfield"
street = REXML::Element.new "EvergreenTerrace"
address = REXML::Element.new "House742"
@d << city << street << address
@str = ""
end
it "returns document source as string" do
@d.write(@str)
@str.should == ""
end
it "returns document indented" do
@d.write(@str, 2)
@str.should =~ /\s*\s*\s*\s*<\/EvergreenTerrace>\s*<\/Springfield>/
end
# REXML in p114 is screwed up:
# Document#write uses wrong arity for Formatters::Transitive#initialize
#
# In branch_1_8 in rev 15833 REXML is organized completely differently.
# So we are waiting for further changes to REXML in 1.8.x branch.
ruby_bug do
it "returns document with transitive support" do
@d.write(@str, 2, true)
@str.should =~ "\s*<\/EvergreenTerrace\s*><\/Springfield\s*>"
end
end
it "returns document with support for IE" do
@d.write(@str, -1, false, true)
@str.should == ""
end
end
1)
REXML::Document#write returns document with transitive support ERROR
wrong number of arguments (got 2, required 1)
REXML::Formatters::Transitive#initialize at /Users/antares/dev/opensource/rbx/stdlib/rexml/formatters/transitive.rb:16
Class#new at kernel/bootstrap/class.rb:16
REXML::Document#write at /Users/antares/dev/opensource/rbx/stdlib/rexml/document.rb:188
Object#__script__ {} at ./spec/ruby/1.8/library/rexml/document/write_spec.rb:33
Proc#call at kernel/core/proc.rb:84
MSpec.protect at ./mspec/runner/mspec.rb:116
RunState#protect {} at ./mspec/runner/state.rb:46
Array#each at kernel/core/array.rb:573
RunState#protect at ./mspec/runner/state.rb:46
RunState#process {} at ./mspec/runner/state.rb:64
Array#each at kernel/core/array.rb:573
RunState#process at ./mspec/runner/state.rb:68
MSpec.describe at ./mspec/runner/mspec.rb:21
Object#describe at ./mspec/runner/object.rb:11
Object#__script__ at ./spec/ruby/1.8/library/rexml/document/write_spec.rb:6
CompiledMethod#as_script at kernel/core/compiled_method.rb:210
Compile.single_load at kernel/core/compile.rb:235
Compile.unified_load {} at kernel/core/compile.rb:150
Array#each at kernel/core/array.rb:573
Compile.unified_load at kernel/core/compile.rb:120
Kernel.load at kernel/core/compile.rb:389
MSpec.files {} at ./mspec/runner/mspec.rb:37
Proc#call at kernel/core/proc.rb:84
MSpec.protect at ./mspec/runner/mspec.rb:112
MSpec.files {} at ./mspec/runner/mspec.rb:38
Array#each at kernel/core/array.rb:573
MSpec.files at ./mspec/runner/mspec.rb:34
MSpec.process at ./mspec/runner/mspec.rb:27
Object#__script__ at mspec/bin/mspec-ci:59
CompiledMethod#as_script at kernel/core/compiled_method.rb:210
Compile.single_load at kernel/core/compile.rb:235
Compile.load_from_extension at kernel/core/compile.rb:312
Object#__script__ at kernel/loader.rb:190