File: test_entity_decl.rb

package info (click to toggle)
ruby-nokogiri 1.11.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 5,576 kB
  • sloc: xml: 28,086; ruby: 18,456; java: 13,067; ansic: 5,138; yacc: 265; sh: 208; makefile: 27
file content (122 lines) | stat: -rw-r--r-- 3,154 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
require "helper"

module Nokogiri
  module XML
    class TestEntityDecl < Nokogiri::TestCase
      def setup
        super
        @xml = Nokogiri::XML(<<-eoxml)
<?xml version="1.0"?><?TEST-STYLE PIDATA?>
<!DOCTYPE staff SYSTEM "staff.dtd" [
   <!ENTITY ent1 "es">
   <!ENTITY nocontent "">
]>
<root />
        eoxml

        @entities = @xml.internal_subset.children
        @entity_decl = @entities.first
      end

      def test_constants
        assert_equal 1, EntityDecl::INTERNAL_GENERAL
        assert_equal 2, EntityDecl::EXTERNAL_GENERAL_PARSED
        assert_equal 3, EntityDecl::EXTERNAL_GENERAL_UNPARSED
        assert_equal 4, EntityDecl::INTERNAL_PARAMETER
        assert_equal 5, EntityDecl::EXTERNAL_PARAMETER
        assert_equal 6, EntityDecl::INTERNAL_PREDEFINED
      end

      def test_create_typed_entity
        entity = @xml.create_entity(
          'foo', EntityDecl::INTERNAL_GENERAL, nil, nil, nil
        )
        assert_equal EntityDecl::INTERNAL_GENERAL, entity.entity_type
        assert_equal 'foo', entity.name
      end

      def test_new
        entity = Nokogiri::XML::EntityDecl.new(
          'foo', @xml, EntityDecl::INTERNAL_GENERAL, nil, nil, nil
        )
        assert_equal EntityDecl::INTERNAL_GENERAL, entity.entity_type
        assert_equal 'foo', entity.name
      end

      def test_create_default_args
        entity = @xml.create_entity('foo')
        assert_equal EntityDecl::INTERNAL_GENERAL, entity.entity_type
        assert_equal 'foo', entity.name
      end

      def test_external_id
        assert_nil @entity_decl.external_id
      end

      def test_system_id
        assert_nil @entity_decl.system_id
      end

      def test_entity_type
        assert_equal 1, @entity_decl.entity_type
      end

      def test_original_content
        assert_equal "es", @entity_decl.original_content
        if Nokogiri.jruby?
          assert_nil @entities[1].original_content
        else
          assert_equal "", @entities[1].original_content
        end
      end

      def test_content
        assert_equal "es", @entity_decl.content
        if Nokogiri.jruby?
          assert_nil @entities[1].content
        else
          assert_equal "", @entities[1].content
        end
      end

      def test_type
        assert_equal 17, @entities.first.type
      end

      def test_class
        assert_instance_of Nokogiri::XML::EntityDecl, @entities.first
      end

      def test_attributes
        assert_raise NoMethodError do
          @entity_decl.attributes
        end
      end

      def test_namespace
        assert_raise NoMethodError do
          @entity_decl.namespace
        end
      end

      def test_namespace_definitions
        assert_raise NoMethodError do
          @entity_decl.namespace_definitions
        end
      end

      def test_line
        assert_raise NoMethodError do
          @entity_decl.line
        end
      end

      def test_inspect
        assert_equal(
          "#<#{@entity_decl.class.name}:#{sprintf("0x%x", @entity_decl.object_id)} #{@entity_decl.to_s.inspect}>",
          @entity_decl.inspect
        )
      end
    end
  end
end