File: test_string_formatter.rb

package info (click to toggle)
ruby-cri 2.15.12-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 384 kB
  • sloc: ruby: 2,776; makefile: 11
file content (103 lines) | stat: -rw-r--r-- 4,055 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
# frozen_string_literal: true

require 'helper'

module Cri
  class CoreExtTestCase < Cri::TestCase
    def formatter
      Cri::StringFormatter.new
    end

    def test_string_to_paragraphs
      original = "Lorem ipsum dolor sit amet,\nconsectetur adipisicing.\n\n" \
                 "Sed do eiusmod\ntempor incididunt ut labore."

      expected = ['Lorem ipsum dolor sit amet, consectetur adipisicing.',
                  'Sed do eiusmod tempor incididunt ut labore.']

      actual = formatter.to_paragraphs(original)
      assert_equal expected, actual
    end

    def test_string_wrap_and_indent_without_indent
      original = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, ' \
                 'sed do eiusmod tempor incididunt ut labore et dolore ' \
                 'magna aliqua.'

      expected = "Lorem ipsum dolor sit amet, consectetur\n" \
                 "adipisicing elit, sed do eiusmod tempor\n" \
                 "incididunt ut labore et dolore magna\n" \
                 'aliqua.'

      actual = formatter.wrap_and_indent(original, 40, 0)
      assert_equal expected, actual
    end

    def test_string_wrap_and_indent_with_indent
      original = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, ' \
                 'sed do eiusmod tempor incididunt ut labore et dolore ' \
                 'magna aliqua.'

      expected = "    Lorem ipsum dolor sit amet,\n" \
                 "    consectetur adipisicing elit,\n" \
                 "    sed do eiusmod tempor\n" \
                 "    incididunt ut labore et dolore\n" \
                 '    magna aliqua.'

      actual = formatter.wrap_and_indent(original, 36, 4)
      assert_equal expected, actual
    end

    def test_string_wrap_and_indent_excluding_first_line
      original = 'Lorem ipsum dolor sit amet, consectetur adipisicing ' \
                 'elit, sed do eiusmod tempor incididunt ut labore et dolore ' \
                 'magna aliqua.'

      expected = "Lorem ipsum dolor sit amet,\n" \
                 "    consectetur adipisicing elit,\n" \
                 "    sed do eiusmod tempor\n" \
                 "    incididunt ut labore et dolore\n" \
                 '    magna aliqua.'

      actual = formatter.wrap_and_indent(original, 36, 4, true)
      assert_equal expected, actual
    end

    def test_string_wrap_and_indent_with_large_indent
      original = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, ' \
                 'sed do eiusmod tempor incididunt ut labore et dolore ' \
                 'magna aliqua.'

      expected = "                              Lorem ipsum\n" \
                 "                              dolor sit\n" \
                 "                              amet,\n" \
                 "                              consectetur\n" \
                 "                              adipisicing\n" \
                 "                              elit, sed do\n" \
                 "                              eiusmod\n" \
                 "                              tempor\n" \
                 "                              incididunt ut\n" \
                 "                              labore et\n" \
                 "                              dolore magna\n" \
                 '                              aliqua.'

      actual = formatter.wrap_and_indent(original, 44, 30)
      assert_equal expected, actual
    end

    def test_string_wrap_and_indent_with_multiple_lines
      original = "Lorem ipsum dolor sit\namet, consectetur adipisicing elit, " \
                 "sed do\neiusmod tempor incididunt ut\nlabore et dolore " \
                 "magna\naliqua."

      expected = "    Lorem ipsum dolor sit amet,\n" \
                 "    consectetur adipisicing elit,\n" \
                 "    sed do eiusmod tempor\n" \
                 "    incididunt ut labore et dolore\n" \
                 '    magna aliqua.'

      actual = formatter.wrap_and_indent(original, 36, 4)
      assert_equal expected, actual
    end
  end
end