From 30c01a5aee50f243dca99edd1070c725dbaec7e8 Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Thu, 3 Apr 2014 09:43:30 +0200 Subject: [PATCH] Tests for XML::TreeBuilder#handler_missing. --- lib/oga/xml/tree_builder.rb | 5 +++++ spec/oga/xml/tree_builder_spec.rb | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/lib/oga/xml/tree_builder.rb b/lib/oga/xml/tree_builder.rb index 92877d3..0805e39 100644 --- a/lib/oga/xml/tree_builder.rb +++ b/lib/oga/xml/tree_builder.rb @@ -120,6 +120,11 @@ module Oga return *node end + ## + # Raises for every unhandled node. + # + # @param [Oga::AST::Node] node + # def handler_missing(node) raise "No handler for node type #{node.type.inspect}" end diff --git a/spec/oga/xml/tree_builder_spec.rb b/spec/oga/xml/tree_builder_spec.rb index d4eafa8..0e6323c 100644 --- a/spec/oga/xml/tree_builder_spec.rb +++ b/spec/oga/xml/tree_builder_spec.rb @@ -228,4 +228,15 @@ describe Oga::XML::TreeBuilder do @builder.process(s(:attributes)).should == {} end end + + context '#handler_missing' do + before do + @node = s(:foo, 'bar') + end + + example 'raise when processing an unknown node' do + lambda { @builder.process(@node) } + .should raise_error('No handler for node type :foo') + end + end end