summaryrefslogtreecommitdiff
path: root/test/csv/parse/test_strip.rb
blob: 3564fcb3ba5bcbf172d9d851687c628ec338b310 (plain)
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
# -*- coding: utf-8 -*-
# frozen_string_literal: false

require_relative "../helper"

class TestCSVParseStrip < Test::Unit::TestCase
  extend DifferentOFS

  def test_both
    assert_equal(["a", "b"],
                 CSV.parse_line(%Q{  a  ,  b  }, strip: true))
  end

  def test_left
    assert_equal(["a", "b"],
                 CSV.parse_line(%Q{  a,  b}, strip: true))
  end

  def test_right
    assert_equal(["a", "b"],
                 CSV.parse_line(%Q{a  ,b  }, strip: true))
  end

  def test_middle
    assert_equal(["a b"],
                 CSV.parse_line(%Q{a b}, strip: true))
  end

  def test_quoted
    assert_equal(["  a  ", "  b  "],
                 CSV.parse_line(%Q{"  a  ","  b  "}, strip: true))
  end

  def test_liberal_parsing
    assert_equal(["  a  ", "b", "  c  ", "  d  "],
                 CSV.parse_line(%Q{"  a  ",  b  ,  "  c  ","  d  "  },
                                strip: true,
                                liberal_parsing: true))
  end

  def test_string
    assert_equal(["a", " b"],
                 CSV.parse_line(%Q{  a  , " b"  },
                                strip: " "))
  end

  def test_no_quote
    assert_equal(["  a  ", "  b  "],
                 CSV.parse_line(%Q{"  a  ",  b  },
                                strip: %Q{"},
                                quote_char: nil))
  end

  def test_do_not_strip_cr
    assert_equal([
                   ["a", "b "],
                   ["a", "b "],
                 ],
                 CSV.parse(%Q{"a" ,"b " \r} +
                           %Q{"a" ,"b " \r},
                           strip: true))
  end

  def test_do_not_strip_lf
    assert_equal([
                   ["a", "b "],
                   ["a", "b "],
                 ],
                 CSV.parse(%Q{"a" ,"b " \n} +
                           %Q{"a" ,"b " \n},
                           strip: true))
  end

  def test_do_not_strip_crlf
    assert_equal([
                   ["a", "b "],
                   ["a", "b "],
                 ],
                 CSV.parse(%Q{"a" ,"b " \r\n} +
                           %Q{"a" ,"b " \r\n},
                           strip: true))
  end
end