summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/webdriver/tests/bidi/browsing_context/print/page_ranges.py
blob: 64843d34962c40920db88dbf8fd94fd771113027 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# META: timeout=long
import pytest

pytestmark = pytest.mark.asyncio


@pytest.mark.parametrize(
    "ranges,expected",
    [
        (
            ["2-4"],
            [
                {"type": "string", "value": "Page 2"},
                {"type": "string", "value": "Page 3"},
                {"type": "string", "value": "Page 4"},
            ],
        ),
        (
            ["2-4", "2-3"],
            [
                {"type": "string", "value": "Page 2"},
                {"type": "string", "value": "Page 3"},
                {"type": "string", "value": "Page 4"},
            ],
        ),
        (
            ["2-4", "3-5"],
            [
                {"type": "string", "value": "Page 2"},
                {"type": "string", "value": "Page 3"},
                {"type": "string", "value": "Page 4"},
                {"type": "string", "value": "Page 5"},
            ],
        ),
        (
            ["9-"],
            [
                {"type": "string", "value": "Page 9"},
                {"type": "string", "value": "Page 10"},
            ],
        ),
        (
            ["-2"],
            [
                {"type": "string", "value": "Page 1"},
                {"type": "string", "value": "Page 2"},
            ],
        ),
        (
            [7],
            [
                {"type": "string", "value": "Page 7"},
            ],
        ),
        (
            ["7"],
            [
                {"type": "string", "value": "Page 7"},
            ],
        ),
        (
            ["-2", "9-", "7"],
            [
                {"type": "string", "value": "Page 1"},
                {"type": "string", "value": "Page 2"},
                {"type": "string", "value": "Page 7"},
                {"type": "string", "value": "Page 9"},
                {"type": "string", "value": "Page 10"},
            ],
        ),
        (
            ["-5", "2-"],
            [
                {"type": "string", "value": "Page 1"},
                {"type": "string", "value": "Page 2"},
                {"type": "string", "value": "Page 3"},
                {"type": "string", "value": "Page 4"},
                {"type": "string", "value": "Page 5"},
                {"type": "string", "value": "Page 6"},
                {"type": "string", "value": "Page 7"},
                {"type": "string", "value": "Page 8"},
                {"type": "string", "value": "Page 9"},
                {"type": "string", "value": "Page 10"},
            ],
        ),
        (
            [],
            [
                {"type": "string", "value": "Page 1"},
                {"type": "string", "value": "Page 2"},
                {"type": "string", "value": "Page 3"},
                {"type": "string", "value": "Page 4"},
                {"type": "string", "value": "Page 5"},
                {"type": "string", "value": "Page 6"},
                {"type": "string", "value": "Page 7"},
                {"type": "string", "value": "Page 8"},
                {"type": "string", "value": "Page 9"},
                {"type": "string", "value": "Page 10"},
            ],
        ),
    ],
)
async def test_page_ranges_document(
    bidi_session, inline, top_context, assert_pdf_content, ranges, expected
):
    url = inline(
        """
<style>
div {page-break-after: always}
</style>

<div>Page 1</div>
<div>Page 2</div>
<div>Page 3</div>
<div>Page 4</div>
<div>Page 5</div>
<div>Page 6</div>
<div>Page 7</div>
<div>Page 8</div>
<div>Page 9</div>
<div>Page 10</div>"""
    )
    await bidi_session.browsing_context.navigate(
        context=top_context["context"], url=url, wait="complete"
    )

    value = await bidi_session.browsing_context.print(
        context=top_context["context"], page_ranges=ranges
    )

    await assert_pdf_content(value, expected)