summaryrefslogtreecommitdiffstats
path: root/test/roo/test_csv.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/roo/test_csv.rb')
-rw-r--r--test/roo/test_csv.rb60
1 files changed, 60 insertions, 0 deletions
diff --git a/test/roo/test_csv.rb b/test/roo/test_csv.rb
new file mode 100644
index 0000000..c5e251d
--- /dev/null
+++ b/test/roo/test_csv.rb
@@ -0,0 +1,60 @@
+require "test_helper"
+
+class TestRooCSV < Minitest::Test
+ def test_sheets
+ file = filename("numbers1")
+ workbook = roo_class.new(File.join(TESTDIR, file))
+ assert_equal ["default"], workbook.sheets
+ assert_raises(RangeError) { workbook.default_sheet = "no_sheet" }
+ assert_raises(TypeError) { workbook.default_sheet = [1, 2, 3] }
+ workbook.sheets.each do |sh|
+ workbook.default_sheet = sh
+ assert_equal sh, workbook.default_sheet
+ end
+ end
+
+ def test_nil_rows_and_lines_csv
+ # x_123
+ oo = Roo::CSV.new(File.join(TESTDIR,'Bibelbund.csv'))
+ oo.default_sheet = oo.sheets.first
+ assert_equal 1, oo.first_row
+ assert_equal 3735, oo.last_row
+ assert_equal 1, oo.first_column
+ assert_equal 8, oo.last_column
+ end
+
+ def test_empty_csv
+ # x_123
+ oo = Roo::CSV.new(File.join(TESTDIR,'emptysheets.csv'))
+ oo.default_sheet = oo.sheets.first
+ assert_equal 1, oo.first_row
+ assert_equal 1, oo.last_row
+ assert_equal 1, oo.first_column
+ assert_equal 1, oo.last_column
+ end
+
+ def test_csv_parsing_with_headers
+ return unless CSV
+ headers = ["TITEL", "VERFASSER", "OBJEKT", "NUMMER", "SEITE", "INTERNET", "PC", "KENNUNG"]
+
+ oo = Roo::Spreadsheet.open(File.join(TESTDIR, "Bibelbund.csv"))
+ parsed = oo.parse(headers: true)
+ assert_equal headers, parsed[1].keys
+ end
+
+ def test_iso_8859_1
+ file = File.open(File.join(TESTDIR, "iso_8859_1.csv"))
+ options = { csv_options: { col_sep: ";", encoding: Encoding::ISO_8859_1 } }
+ workbook = Roo::CSV.new(file.path, options)
+ result = workbook.last_column
+ assert_equal(19, result)
+ end
+
+ def roo_class
+ Roo::CSV
+ end
+
+ def filename(name)
+ "#{name}.csv"
+ end
+end