diff options
| author | Dan Allen <dan.j.allen@gmail.com> | 2018-04-24 22:29:09 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-04-24 22:29:09 -0600 |
| commit | cd0f10d708c37b0deaf2f23140ab7bcbb5d71c08 (patch) | |
| tree | dbfc5459da499a65fad57885faa965404faf77ec /test | |
| parent | 3fc6666626741c3b8fb474a1b052a723ca3ca28c (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.rb | 28 | ||||
| -rw-r--r-- | test/fixtures/sample.asciidoc | 6 | ||||
| -rw-r--r-- | test/tables_test.rb | 15 |
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 |
