summaryrefslogtreecommitdiff
path: root/spec/text_formatter_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/text_formatter_spec.rb')
-rw-r--r--spec/text_formatter_spec.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/text_formatter_spec.rb b/spec/text_formatter_spec.rb
index e313ab33..ae0ffcc4 100644
--- a/spec/text_formatter_spec.rb
+++ b/spec/text_formatter_spec.rb
@@ -134,5 +134,48 @@ describe Asciidoctor::PDF::FormattedText::Formatter do
to_file = to_pdf_file '*を*', 'text-formatter-fallback-font.pdf', attribute_overrides: { 'pdf-theme' => 'default-with-fallback-font' }
(expect to_file).to visually_match 'text-formatter-fallback-font.pdf'
end
+
+ it 'should allow theme to control formatting apply to phrase by role' do
+ pdf_theme = {
+ role_red_font_color: 'ff0000',
+ role_red_font_style: 'bold',
+ role_blue_font_color: '0000ff',
+ role_blue_font_style: 'bold_italic',
+ }
+ pdf = to_pdf 'Roses are [.red]_red_, violets are [.blue]#blue#.', pdf_theme: pdf_theme, analyze: true
+
+ red_text = (pdf.find_text 'red')[0]
+ blue_text = (pdf.find_text 'blue')[0]
+ (expect red_text[:font_color]).to eql 'FF0000'
+ (expect red_text[:font_name]).to eql 'NotoSerif-BoldItalic'
+ (expect blue_text[:font_color]).to eql '0000FF'
+ (expect blue_text[:font_name]).to eql 'NotoSerif-BoldItalic'
+ end
+
+ it 'should append font style configured for role to current style' do
+ pdf_theme = {
+ role_quick_font_style: 'italic',
+ }
+ pdf = to_pdf '*That was [.quick]#quick#.*', pdf_theme: pdf_theme, analyze: true
+
+ glorious_text = (pdf.find_text 'quick')[0]
+ (expect glorious_text[:font_name]).to eql 'NotoSerif-BoldItalic'
+ end
+
+ it 'should support theming multiple roles on a single phrase' do
+ pdf_theme = {
+ role_bold_font_style: 'bold',
+ role_italic_font_style: 'italic',
+ role_blue_font_color: '0000ff',
+ role_mono_font_family: 'Courier',
+ role_tiny_font_size: 8,
+ }
+ pdf = to_pdf '[.bold.italic.blue.mono.tiny]#text#', pdf_theme: pdf_theme, analyze: true
+
+ formatted_text = (pdf.find_text 'text')[0]
+ (expect formatted_text[:font_name]).to eql 'Courier-BoldOblique'
+ (expect formatted_text[:font_color]).to eql '0000FF'
+ (expect formatted_text[:font_size]).to eql 8
+ end
end
end