summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDan Allen <dan.j.allen@gmail.com>2018-04-24 22:29:09 -0600
committerGitHub <noreply@github.com>2018-04-24 22:29:09 -0600
commitcd0f10d708c37b0deaf2f23140ab7bcbb5d71c08 (patch)
treedbfc5459da499a65fad57885faa965404faf77ec /test
parent3fc6666626741c3b8fb474a1b052a723ca3ca28c (diff)
resolves #2705 populate source_location property on cell when sourcemap option enabled (PR #2708)
- add source_location property to Table::Cell - add file and lineno methods to Table::Cell - when sourcemap option is enabled, set source_location property on cell - mark first line of table so line number for first cell is correct - add tests to verify source_location information on table cell is correct
Diffstat (limited to 'test')
-rw-r--r--test/api_test.rb28
-rw-r--r--test/fixtures/sample.asciidoc6
-rw-r--r--test/tables_test.rb15
3 files changed, 40 insertions, 9 deletions
diff --git a/test/api_test.rb b/test/api_test.rb
index 5ec8fa3e..100a384e 100644
--- a/test/api_test.rb
+++ b/test/api_test.rb
@@ -277,24 +277,42 @@ content
assert_equal 'sample.asciidoc', section_2.file
assert_equal 18, section_2.lineno
+ table_block = section_2.blocks[1]
+ assert_equal :table, table_block.context
+ refute_nil table_block.source_location
+ assert_equal 'sample.asciidoc', table_block.file
+ assert_equal 22, table_block.lineno
+ first_cell = table_block.rows.body[0][0]
+ refute_nil first_cell.source_location
+ assert_equal 'sample.asciidoc', first_cell.file
+ assert_equal 23, first_cell.lineno
+ second_cell = table_block.rows.body[0][1]
+ refute_nil second_cell.source_location
+ assert_equal 'sample.asciidoc', second_cell.file
+ assert_equal 23, second_cell.lineno
+ last_cell = table_block.rows.body[-1][-1]
+ refute_nil last_cell.source_location
+ assert_equal 'sample.asciidoc', last_cell.file
+ assert_equal 24, last_cell.lineno
+
last_block = section_2.blocks[-1]
assert_equal :ulist, last_block.context
refute_nil last_block.source_location
assert_equal 'sample.asciidoc', last_block.file
- assert_equal 23, last_block.lineno
+ assert_equal 28, last_block.lineno
list_items = last_block.blocks
refute_nil list_items[0].source_location
assert_equal 'sample.asciidoc', list_items[0].file
- assert_equal 23, list_items[0].lineno
+ assert_equal 28, list_items[0].lineno
refute_nil list_items[1].source_location
assert_equal 'sample.asciidoc', list_items[1].file
- assert_equal 24, list_items[1].lineno
+ assert_equal 29, list_items[1].lineno
refute_nil list_items[2].source_location
assert_equal 'sample.asciidoc', list_items[2].file
- assert_equal 25, list_items[2].lineno
+ assert_equal 30, list_items[2].lineno
doc = Asciidoctor.load_file fixture_path('master.adoc'), :sourcemap => true, :safe => :safe
@@ -305,7 +323,7 @@ content
assert_equal 1, section_1.lineno
end
- test 'wip should track file and line information on list items if sourcemap option is set' do
+ test 'should track file and line information on list items if sourcemap option is set' do
doc = Asciidoctor.load_file fixture_path('lists.adoc'), :sourcemap => true
first_section = doc.blocks[1]
diff --git a/test/fixtures/sample.asciidoc b/test/fixtures/sample.asciidoc
index 0b8061ee..d02e64ff 100644
--- a/test/fixtures/sample.asciidoc
+++ b/test/fixtures/sample.asciidoc
@@ -19,8 +19,12 @@ NOTE: This is test, only a test.
*Section B* paragraph.
+|===
+|a |b |c
+|1 |2 |3
+|===
+
.Section B list
* Item 1
* Item 2
* Item 3
-
diff --git a/test/tables_test.rb b/test/tables_test.rb
index 8afff1e8..d0a60547 100644
--- a/test/tables_test.rb
+++ b/test/tables_test.rb
@@ -1080,16 +1080,18 @@ output file name is used.
refute_nil table
tbody = table.rows.body
assert_equal 2, tbody.size
+ body_cell_1_2 = tbody[0][1]
+ assert_equal 5, body_cell_1_2.lineno
body_cell_1_3 = tbody[0][2]
refute_nil body_cell_1_3.inner_document
assert body_cell_1_3.inner_document.nested?
assert_equal doc, body_cell_1_3.inner_document.parent_document
assert_equal doc.converter, body_cell_1_3.inner_document.converter
- # TODO assert that body_cell_1_3.lineno is 5 once source_location is available on cell
+ assert_equal 5, body_cell_1_3.lineno
assert_equal 6, body_cell_1_3.inner_document.lineno
note = (body_cell_1_3.inner_document.find_by :context => :admonition)[0]
assert_equal 9, note.lineno
- output = doc.convert
+ output = doc.convert :header_footer => false
assert_css 'table > tbody > tr', output, 2
assert_css 'table > tbody > tr:nth-child(1) > td:nth-child(3) div.admonitionblock', output, 1
@@ -1104,7 +1106,14 @@ a|
a| paragraph
|===
EOS
- output = render_embedded_string input
+ doc = document_from_string input, :sourcemap => true
+ table = doc.blocks[0]
+ tbody = table.rows.body
+ assert_equal 1, table.lineno
+ assert_equal 2, tbody[0][0].lineno
+ assert_equal 3, tbody[0][0].inner_document.lineno
+ assert_equal 4, tbody[1][0].lineno
+ output = doc.convert :header_footer => false
assert_css 'td', output, 2
assert_xpath '(//td)[1]//*[@class="literalblock"]', output, 1
assert_xpath '(//td)[2]//*[@class="paragraph"]', output, 1