diff options
| author | Guillaume Grossetie <g.grossetie@gmail.com> | 2019-02-23 09:27:12 +0100 |
|---|---|---|
| committer | Dan Allen <dan.j.allen@gmail.com> | 2019-02-23 19:10:14 -0700 |
| commit | 01dcd1778dfd3772636410b34aae94e2de2e07a5 (patch) | |
| tree | 0d440641ce4f842a89e98168aa87ce1f7ad6ab32 | |
| parent | ed93b13f7fdd0af5219bd9376dbe128318a60811 (diff) | |
add extension tests that create list items with id and role
| -rw-r--r-- | test/extensions_test.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/test/extensions_test.rb b/test/extensions_test.rb index aeb8453d..7d7f6b90 100644 --- a/test/extensions_test.rb +++ b/test/extensions_test.rb @@ -195,6 +195,36 @@ def create_cat_in_sink_block_macro end end +def create_santa_list_block_macro + Asciidoctor::Extensions.create do + block_macro do + named :santa_list + process do |parent, target| + list = create_list parent, target + guillaume = (create_list_item list, 'Guillaume') + guillaume.add_role('friendly') + guillaume.id = 'santa-list-guillaume' + list << guillaume + robert = (create_list_item list, 'Robert') + robert.add_role('kind') + robert.add_role('contributor') + robert.add_role('java') + list << robert + pepijn = (create_list_item list, 'Pepijn') + pepijn.id = 'santa-list-pepijn' + list << pepijn + dan = (create_list_item list, 'Dan') + dan.add_role('naughty') + dan.id = 'santa-list-dan' + list << dan + sarah = (create_list_item list, 'Sarah') + list << sarah + list + end + end + end +end + context 'Extensions' do context 'Register' do test 'should not activate registry if no extension groups are registered' do @@ -1473,5 +1503,29 @@ context 'Extensions' do output = doc.convert assert_xpath '/*[@class="imageblock"]/*[@class="title"][text()="Figure 1. Cat in Sink?"]', output, 1 end + + test 'should assign id and role on list items unordered' do + input = 'santa_list::ulist[]' + doc = document_from_string input, header_footer: false, extension_registry: create_santa_list_block_macro + output = doc.convert + assert_xpath '/div[@class="ulist"]/ul/li[@class="friendly"][@id="santa-list-guillaume"]', output, 1 + assert_xpath '/div[@class="ulist"]/ul/li[@class="kind contributor java"]', output, 1 + assert_xpath '/div[@class="ulist"]/ul/li[@class="kind contributor java"][not(@id)]', output, 1 + assert_xpath '/div[@class="ulist"]/ul/li[@id="santa-list-pepijn"][not(@class)]', output, 1 + assert_xpath '/div[@class="ulist"]/ul/li[@id="santa-list-dan"][@class="naughty"]', output, 1 + assert_xpath '/div[@class="ulist"]/ul/li[not(@id)][not(@class)]/p[text()="Sarah"]', output, 1 + end + + test 'should assign id and role on list items ordered' do + input = 'santa_list::olist[]' + doc = document_from_string input, header_footer: false, extension_registry: create_santa_list_block_macro + output = doc.convert + assert_xpath '/div[@class="olist"]/ol/li[@class="friendly"][@id="santa-list-guillaume"]', output, 1 + assert_xpath '/div[@class="olist"]/ol/li[@class="kind contributor java"]', output, 1 + assert_xpath '/div[@class="olist"]/ol/li[@class="kind contributor java"][not(@id)]', output, 1 + assert_xpath '/div[@class="olist"]/ol/li[@id="santa-list-pepijn"][not(@class)]', output, 1 + assert_xpath '/div[@class="olist"]/ol/li[@id="santa-list-dan"][@class="naughty"]', output, 1 + assert_xpath '/div[@class="olist"]/ol/li[not(@id)][not(@class)]/p[text()="Sarah"]', output, 1 + end end end |
