File: test_text.rb

package info (click to toggle)
ruby-nokogiri 1.13.10%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 7,416 kB
  • sloc: ansic: 38,198; xml: 28,086; ruby: 22,271; java: 15,517; cpp: 7,037; yacc: 244; sh: 148; makefile: 136
file content (71 lines) | stat: -rw-r--r-- 2,076 bytes parent folder | download
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
# frozen_string_literal: true

require "helper"

module Nokogiri
  module XML
    class TestText < Nokogiri::TestCase
      def test_css_path
        doc  = Nokogiri.XML("<root> foo <a>something</a> bar bazz </root>")
        node = doc.root.children[2]
        assert_instance_of(Nokogiri::XML::Text, node)
        assert_equal(node, doc.at_css(node.css_path))
      end

      def test_inspect
        node = Text.new("hello world", Document.new)
        assert_equal("#<#{node.class.name}:#{format("0x%x", node.object_id)} #{node.text.inspect}>", node.inspect)
      end

      def test_new
        node = Text.new("hello world", Document.new)
        assert(node)
        assert_equal("hello world", node.content)
        assert_instance_of(Nokogiri::XML::Text, node)
      end

      def test_lots_of_text
        100.times { Text.new("hello world", Document.new) }
      end

      def test_new_without_document
        doc = Document.new
        node = Nokogiri::XML::Element.new("foo", doc)

        assert(Text.new("hello world", node))
      end

      def test_content=
        node = Text.new("foo", Document.new)
        assert_equal("foo", node.content)
        node.content = "& <foo> &amp;"
        assert_equal("& <foo> &amp;", node.content)
        assert_equal("&amp; &lt;foo&gt; &amp;amp;", node.to_xml)
      end

      def test_add_child
        node = Text.new("foo", Document.new)
        exc = if Nokogiri.jruby?
          RuntimeError
        else
          ArgumentError
        end
        assert_raises(exc) do
          node.add_child(Text.new("bar", Document.new))
        end
        assert_raises(exc) do
          node << Text.new("bar", Document.new)
        end
      end

      def test_wrap
        xml = '<root><thing><div class="title">important thing</div></thing></root>'
        doc = Nokogiri::XML(xml)
        text = doc.at_css("div").children.first
        text.wrap("<wrapper/>")
        assert_equal("wrapper", text.parent.name)
        assert_equal("wrapper", doc.at_css("div").children.first.name)
      end
    end
  end
end