aboutsummaryrefslogtreecommitdiff
path: root/vim/bundle/vim-table-mode/t/table.vim
diff options
context:
space:
mode:
Diffstat (limited to 'vim/bundle/vim-table-mode/t/table.vim')
-rw-r--r--vim/bundle/vim-table-mode/t/table.vim184
1 files changed, 184 insertions, 0 deletions
diff --git a/vim/bundle/vim-table-mode/t/table.vim b/vim/bundle/vim-table-mode/t/table.vim
new file mode 100644
index 0000000..516467c
--- /dev/null
+++ b/vim/bundle/vim-table-mode/t/table.vim
@@ -0,0 +1,184 @@
+" vim: fdm=indent
+source t/config/options.vim
+
+describe 'table'
+ describe 'IsRow'
+ before
+ new
+ normal! ggdG
+ read t/fixtures/table/sample.txt
+ end
+
+ it 'should be true when on a table row'
+ Expect tablemode#table#IsRow(2) to_be_true
+ Expect tablemode#table#IsRow(3) to_be_true
+ end
+
+ it 'should be false when not on a table row'
+ Expect tablemode#table#IsRow(1) to_be_false
+ Expect tablemode#table#IsRow(4) to_be_false
+ end
+ end
+
+ describe 'IsBorder'
+ before
+ new
+ normal! ggdG
+ read t/fixtures/table/sample_with_header.txt
+ end
+
+ it 'should be true on a table border'
+ Expect tablemode#table#IsBorder(1) to_be_true
+ Expect tablemode#table#IsBorder(3) to_be_true
+ Expect tablemode#table#IsBorder(6) to_be_true
+ end
+
+ it 'should be false when not on a table border'
+ Expect tablemode#table#IsBorder(2) to_be_false
+ Expect tablemode#table#IsBorder(4) to_be_false
+ Expect tablemode#table#IsBorder(5) to_be_false
+ end
+ end
+
+ describe 'IsTable'
+ before
+ new normal! ggdG
+ read t/fixtures/table/sample_with_header.txt
+ end
+
+ it 'should be true on a table row'
+ Expect tablemode#table#IsTable(2) to_be_true
+ Expect tablemode#table#IsTable(4) to_be_true
+ Expect tablemode#table#IsTable(5) to_be_true
+ end
+
+ it 'should be true when on a table border'
+ Expect tablemode#table#IsTable(1) to_be_true
+ Expect tablemode#table#IsTable(3) to_be_true
+ Expect tablemode#table#IsTable(6) to_be_true
+ end
+
+ it 'should not be true when not on a table'
+ Expect tablemode#table#IsTable(7) to_be_false
+ end
+ end
+
+ describe 'IsHeader'
+ before
+ new
+ normal! ggdG
+ read t/fixtures/table/sample_with_header.txt
+ end
+
+ it 'should be true on the table header'
+ Expect tablemode#table#IsHeader(2) to_be_true
+ end
+
+ it 'should be false anywhere else'
+ Expect tablemode#table#IsHeader(1) to_be_false
+ Expect tablemode#table#IsHeader(4) to_be_false
+ Expect tablemode#table#IsHeader(5) to_be_false
+ Expect tablemode#table#IsHeader(6) to_be_false
+ Expect tablemode#table#IsHeader(7) to_be_false
+ end
+ end
+
+ describe 'AddBorder'
+ before
+ new
+ normal! ggdG
+ read t/fixtures/table/sample_for_header.txt
+ end
+
+ it 'should add border to line'
+ call tablemode#table#AddBorder(2)
+ Expect tablemode#table#IsHeader(1) to_be_true
+ Expect tablemode#table#IsBorder(2) to_be_true
+ end
+
+ describe 'for unicode'
+ before
+ new
+ normal! ggdG
+ read t/fixtures/table/sample_for_header_unicode.txt
+ end
+
+ it 'should add border to line'
+ call tablemode#table#AddBorder(1)
+ call tablemode#table#AddBorder(3)
+ call tablemode#table#AddBorder(5)
+ call tablemode#table#AddBorder(7)
+ call tablemode#table#AddBorder(9)
+
+ Expect tablemode#table#IsBorder(1) to_be_true
+ Expect tablemode#utils#StrDisplayWidth(getline(1)) == tablemode#utils#StrDisplayWidth(getline(2))
+ Expect tablemode#table#IsBorder(3) to_be_true
+ Expect tablemode#utils#StrDisplayWidth(getline(3)) == tablemode#utils#StrDisplayWidth(getline(4))
+ Expect tablemode#table#IsBorder(5) to_be_true
+ Expect tablemode#utils#StrDisplayWidth(getline(5)) == tablemode#utils#StrDisplayWidth(getline(6))
+ Expect tablemode#table#IsBorder(7) to_be_true
+ Expect tablemode#utils#StrDisplayWidth(getline(7)) == tablemode#utils#StrDisplayWidth(getline(8))
+ Expect tablemode#table#IsBorder(9) to_be_true
+ Expect tablemode#utils#StrDisplayWidth(getline(9)) == tablemode#utils#StrDisplayWidth(getline(8))
+ end
+ end
+ end
+
+ describe 'Realign'
+ describe 'without header alignments'
+ describe 'for simple'
+ before
+ new
+ normal! ggdG
+ read t/fixtures/table/sample_realign_before.txt
+ end
+
+ it 'should be aligned properly'
+ call tablemode#table#Realign(1)
+ Expect getline(1,'$') == readfile('t/fixtures/table/sample_realign_after.txt')
+ end
+ end
+
+ describe 'for unicode'
+ before
+ new
+ normal! ggdG
+ read t/fixtures/table/sample_realign_unicode_before.txt
+ end
+
+ it 'should be aligned properly'
+ call tablemode#table#Realign(1)
+ Expect getline(1,'$') == readfile('t/fixtures/table/sample_realign_unicode_after.txt')
+ end
+ end
+ end
+
+ describe 'with header alignments'
+ describe 'for simple'
+ before
+ new
+ normal! ggdG
+ read t/fixtures/table/sample_header_realign_before.txt
+ end
+
+ it 'should be aligned properly'
+ call tablemode#table#Realign(1)
+ Expect getline(1,'$') == readfile('t/fixtures/table/sample_header_realign_after.txt')
+ end
+ end
+
+ describe 'for unicode'
+ before
+ new
+ normal! ggdG
+ read t/fixtures/table/sample_header_realign_unicode_before.txt
+ end
+
+ it 'should be aligned properly'
+ call tablemode#table#Realign(1)
+ Expect getline(1,'$') == readfile('t/fixtures/table/sample_header_realign_unicode_after.txt')
+ end
+ end
+ end
+ end
+end