mirror of
https://github.com/Kozea/WeasyPrint.git
synced 2024-10-04 07:57:52 +03:00
More footnotes tests
This commit is contained in:
parent
d42b0fabfe
commit
c5f03c2c89
@ -195,7 +195,7 @@ def test_several_footnote():
|
||||
|
||||
@pytest.mark.xfail
|
||||
@assert_no_logs
|
||||
def test_reported_footnote():
|
||||
def test_reported_footnote_1():
|
||||
page1, page2, = render_pages('''
|
||||
<style>
|
||||
@font-face {src: url(weasyprint.otf); font-family: weasyprint}
|
||||
@ -238,3 +238,175 @@ def test_reported_footnote():
|
||||
footnote_area2.children[0].children[0].children)
|
||||
assert footnote_marker2.children[0].text == '2.'
|
||||
assert footnote_textbox2.text == 'f2'
|
||||
|
||||
|
||||
@assert_no_logs
|
||||
def test_reported_footnote_2():
|
||||
page1, page2, = render_pages('''
|
||||
<style>
|
||||
@font-face {src: url(weasyprint.otf); font-family: weasyprint}
|
||||
@page {
|
||||
size: 9px 7px;
|
||||
background: white;
|
||||
}
|
||||
div {
|
||||
color: red;
|
||||
font-family: weasyprint;
|
||||
font-size: 2px;
|
||||
line-height: 1;
|
||||
orphans: 1;
|
||||
widows: 1;
|
||||
}
|
||||
span {
|
||||
float: footnote;
|
||||
}
|
||||
</style>
|
||||
<div>abc<span>f1</span> hij<span>f2</span> wow</div>''')
|
||||
html1, footnote_area1 = page1.children
|
||||
body1, = html1.children
|
||||
div1, = body1.children
|
||||
div_line1, div_line2 = div1.children
|
||||
div_line1_text, div_footnote_call1 = div_line1.children
|
||||
assert div_line1_text.text == 'abc'
|
||||
assert div_footnote_call1.children[0].text == '1'
|
||||
div_line2_text, div_footnote_call2 = div_line2.children
|
||||
assert div_line2_text.text == 'hij'
|
||||
assert div_footnote_call2.children[0].text == '2'
|
||||
footnote_marker1, footnote_textbox1 = (
|
||||
footnote_area1.children[0].children[0].children)
|
||||
assert footnote_marker1.children[0].text == '1.'
|
||||
assert footnote_textbox1.text == 'f1'
|
||||
|
||||
html2, footnote_area2 = page2.children
|
||||
body2, = html2.children
|
||||
div2, = body2.children
|
||||
div2_line, = div2.children
|
||||
assert div2_line.children[0].text == 'wow'
|
||||
footnote_marker2, footnote_textbox2 = (
|
||||
footnote_area2.children[0].children[0].children)
|
||||
assert footnote_marker2.children[0].text == '2.'
|
||||
assert footnote_textbox2.text == 'f2'
|
||||
|
||||
|
||||
@pytest.mark.xfail
|
||||
@assert_no_logs
|
||||
def test_footnote_display_inline():
|
||||
page, = render_pages('''
|
||||
<style>
|
||||
@font-face {src: url(weasyprint.otf); font-family: weasyprint}
|
||||
@page {
|
||||
size: 9px 7px;
|
||||
background: white;
|
||||
}
|
||||
div {
|
||||
color: red;
|
||||
font-family: weasyprint;
|
||||
font-size: 2px;
|
||||
line-height: 1;
|
||||
}
|
||||
span {
|
||||
float: footnote;
|
||||
footnote-diplay: inline;
|
||||
}
|
||||
</style>
|
||||
<div>abc<span>d</span> fgh<span>i</span></div>''')
|
||||
html, footnote_area = page.children
|
||||
body, = html.children
|
||||
div, = body.children
|
||||
div_line1, div_line2 = div.children
|
||||
div_textbox1, footnote_call1 = div_line1.children[0].children
|
||||
div_textbox2, footnote_call2 = div_line2.children[0].children
|
||||
assert div_textbox1.text == 'abc'
|
||||
assert div_textbox2.text == 'abc'
|
||||
assert footnote_call1.children[0].text == '1'
|
||||
assert footnote_call2.children[0].text == '2'
|
||||
footnote_mark1, footnote_textbox1, footnote_mark2, footnote_textbox2 = (
|
||||
footnote_area.children[0].children[0].children)
|
||||
assert footnote_mark1.children[0].text == '1.'
|
||||
assert footnote_textbox1.text == 'd'
|
||||
assert footnote_mark2.children[0].text == '2.'
|
||||
assert footnote_textbox2.text == 'i'
|
||||
|
||||
|
||||
@pytest.mark.xfail
|
||||
@assert_no_logs
|
||||
def test_footnote_longer_than_space_left():
|
||||
page1, page2 = render_pages('''
|
||||
<style>
|
||||
@font-face {src: url(weasyprint.otf); font-family: weasyprint}
|
||||
@page {
|
||||
size: 9px 7px;
|
||||
background: white;
|
||||
}
|
||||
div {
|
||||
color: red;
|
||||
font-family: weasyprint;
|
||||
font-size: 2px;
|
||||
line-height: 1;
|
||||
}
|
||||
span {
|
||||
float: footnote;
|
||||
}
|
||||
</style>
|
||||
<div>abc<span>def ghi jkl</span></div>''')
|
||||
html1, = page1.children
|
||||
body1, = html1.children
|
||||
div, = body1.children
|
||||
div_textbox, footnote_call = div.children[0].children
|
||||
assert div_textbox.text == 'abc'
|
||||
assert footnote_call.children[0].text == '1'
|
||||
|
||||
html2, footnote_area = page2.children
|
||||
assert not html2.children
|
||||
footnote_line1, footnote_line2, footnote_line3 = (
|
||||
footnote_area.children[0].children)
|
||||
footnote_marker, footnote_content1 = footnote_line1.children
|
||||
footnote_content2 = footnote_line2.children[0]
|
||||
footnote_content3 = footnote_line3.children[0]
|
||||
assert footnote_marker.children[0].text == '1.'
|
||||
assert footnote_content1.text == 'def'
|
||||
assert footnote_content2.text == 'ghi'
|
||||
assert footnote_content3.text == 'jkl'
|
||||
|
||||
|
||||
@pytest.mark.xfail
|
||||
@assert_no_logs
|
||||
def test_footnote_longer_than_page():
|
||||
page1, page2 = render_pages('''
|
||||
<style>
|
||||
@font-face {src: url(weasyprint.otf); font-family: weasyprint}
|
||||
@page {
|
||||
size: 9px 7px;
|
||||
background: white;
|
||||
}
|
||||
div {
|
||||
color: red;
|
||||
font-family: weasyprint;
|
||||
font-size: 2px;
|
||||
line-height: 1;
|
||||
}
|
||||
span {
|
||||
float: footnote;
|
||||
}
|
||||
</style>
|
||||
<div>abc<span>def ghi jkl mno</span></div>''')
|
||||
html1, footnote_area1 = page1.children
|
||||
body1, = html1.children
|
||||
div, = body1.children
|
||||
div_textbox, footnote_call = div.children[0].children
|
||||
assert div_textbox.text == 'abc'
|
||||
assert footnote_call.children[0].text == '1'
|
||||
footnote_line1, footnote_line2 = footnote_area1.children[0].children
|
||||
footnote_marker1, footnote_content1 = footnote_line1.children
|
||||
footnote_content2 = footnote_line2.children[0]
|
||||
assert footnote_marker1.children[0].text == '1.'
|
||||
assert footnote_content1.text == 'def'
|
||||
assert footnote_content2.text == 'ghi'
|
||||
|
||||
html2, footnote_area2 = page2.children
|
||||
assert not html2.children
|
||||
footnote_line3, footnote_line4 = footnote_area2.children[0].children
|
||||
footnote_content3 = footnote_line3.children[0]
|
||||
footnote_content4 = footnote_line4.children[0]
|
||||
assert footnote_content3.text == 'jkl'
|
||||
assert footnote_content4.text == 'mno'
|
||||
|
Loading…
Reference in New Issue
Block a user