TwitterBootstrapViewTest::testRenderFirstPage()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 26

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 26
rs 9.504
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Pagerfanta\Tests\View;
4
5
use Pagerfanta\View\TwitterBootstrapView;
6
7
class TwitterBootstrapViewTest extends ViewTestCase
8
{
9
    protected function createView()
10
    {
11
        return new TwitterBootstrapView();
12
    }
13
14
    public function testRenderNormal()
15
    {
16
        $this->setNbPages(100);
17
        $this->setCurrentPage(10);
18
19
        $options = array();
20
21
        $this->assertRenderedView(<<<EOF
22
<div class="pagination">
23
    <ul>
24
        <li class="prev"><a href="|9|" rel="prev">&larr; Previous</a></li>
25
        <li><a href="|1|">1</a></li>
26
        <li class="disabled"><span>&hellip;</span></li>
27
        <li><a href="|7|">7</a></li>
28
        <li><a href="|8|">8</a></li>
29
        <li><a href="|9|">9</a></li>
30
        <li class="active"><span>10</span></li>
31
        <li><a href="|11|">11</a></li>
32
        <li><a href="|12|">12</a></li>
33
        <li><a href="|13|">13</a></li>
34
        <li class="disabled"><span>&hellip;</span></li>
35
        <li><a href="|100|">100</a></li>
36
        <li class="next"><a href="|11|" rel="next">Next &rarr;</a></li>
37
    </ul>
38
</div>
39
EOF
40
        , $this->renderView($options));
41
    }
42
43
    public function testRenderFirstPage()
44
    {
45
        $this->setNbPages(100);
46
        $this->setCurrentPage(1);
47
48
        $options = array();
49
50
        $this->assertRenderedView(<<<EOF
51
<div class="pagination">
52
    <ul>
53
        <li class="prev disabled"><span>&larr; Previous</span></li>
54
        <li class="active"><span>1</span></li>
55
        <li><a href="|2|">2</a></li>
56
        <li><a href="|3|">3</a></li>
57
        <li><a href="|4|">4</a></li>
58
        <li><a href="|5|">5</a></li>
59
        <li><a href="|6|">6</a></li>
60
        <li><a href="|7|">7</a></li>
61
        <li class="disabled"><span>&hellip;</span></li>
62
        <li><a href="|100|">100</a></li>
63
        <li class="next"><a href="|2|" rel="next">Next &rarr;</a></li>
64
    </ul>
65
</div>
66
EOF
67
        , $this->renderView($options));
68
    }
69
70
    public function testRenderLastPage()
71
    {
72
        $this->setNbPages(100);
73
        $this->setCurrentPage(100);
74
75
        $options = array();
76
77
        $this->assertRenderedView(<<<EOF
78
<div class="pagination">
79
    <ul>
80
        <li class="prev"><a href="|99|" rel="prev">&larr; Previous</a></li>
81
        <li><a href="|1|">1</a></li>
82
        <li class="disabled"><span>&hellip;</span></li>
83
        <li><a href="|94|">94</a></li>
84
        <li><a href="|95|">95</a></li>
85
        <li><a href="|96|">96</a></li>
86
        <li><a href="|97|">97</a></li>
87
        <li><a href="|98|">98</a></li>
88
        <li><a href="|99|">99</a></li>
89
        <li class="active"><span>100</span></li>
90
        <li class="next disabled"><span>Next &rarr;</span></li>
91
    </ul>
92
</div>
93
EOF
94
        , $this->renderView($options));
95
    }
96
97
    public function testRenderWhenStartProximityIs2()
98
    {
99
        $this->setNbPages(100);
100
        $this->setCurrentPage(4);
101
102
        $options = array();
103
104
        $this->assertRenderedView(<<<EOF
105
<div class="pagination">
106
    <ul>
107
        <li class="prev"><a href="|3|" rel="prev">&larr; Previous</a></li>
108
        <li><a href="|1|">1</a></li>
109
        <li><a href="|2|">2</a></li>
110
        <li><a href="|3|">3</a></li>
111
        <li class="active"><span>4</span></li>
112
        <li><a href="|5|">5</a></li>
113
        <li><a href="|6|">6</a></li>
114
        <li><a href="|7|">7</a></li>
115
        <li class="disabled"><span>&hellip;</span></li>
116
        <li><a href="|100|">100</a></li>
117
        <li class="next"><a href="|5|" rel="next">Next &rarr;</a></li>
118
    </ul>
119
</div>
120
EOF
121
        , $this->renderView($options));
122
    }
123
124
    public function testRenderWhenStartProximityIs3()
125
    {
126
        $this->setNbPages(100);
127
        $this->setCurrentPage(5);
128
129
        $options = array();
130
131
        $this->assertRenderedView(<<<EOF
132
<div class="pagination">
133
    <ul>
134
        <li class="prev"><a href="|4|" rel="prev">&larr; Previous</a></li>
135
        <li><a href="|1|">1</a></li>
136
        <li><a href="|2|">2</a></li>
137
        <li><a href="|3|">3</a></li>
138
        <li><a href="|4|">4</a></li>
139
        <li class="active"><span>5</span></li>
140
        <li><a href="|6|">6</a></li>
141
        <li><a href="|7|">7</a></li>
142
        <li><a href="|8|">8</a></li>
143
        <li class="disabled"><span>&hellip;</span></li>
144
        <li><a href="|100|">100</a></li>
145
        <li class="next"><a href="|6|" rel="next">Next &rarr;</a></li>
146
    </ul>
147
</div>
148
EOF
149
        , $this->renderView($options));
150
    }
151
152
    public function testRenderWhenEndProximityIs2FromLast()
153
    {
154
        $this->setNbPages(100);
155
        $this->setCurrentPage(97);
156
157
        $options = array();
158
159
        $this->assertRenderedView(<<<EOF
160
<div class="pagination">
161
    <ul>
162
        <li class="prev"><a href="|96|" rel="prev">&larr; Previous</a></li>
163
        <li><a href="|1|">1</a></li>
164
        <li class="disabled"><span>&hellip;</span></li>
165
        <li><a href="|94|">94</a></li>
166
        <li><a href="|95|">95</a></li>
167
        <li><a href="|96|">96</a></li>
168
        <li class="active"><span>97</span></li>
169
        <li><a href="|98|">98</a></li>
170
        <li><a href="|99|">99</a></li>
171
        <li><a href="|100|">100</a></li>
172
        <li class="next"><a href="|98|" rel="next">Next &rarr;</a></li>
173
    </ul>
174
</div>
175
EOF
176
        , $this->renderView($options));
177
    }
178
179
    public function testRenderWhenEndProximityIs3FromLast()
180
    {
181
        $this->setNbPages(100);
182
        $this->setCurrentPage(96);
183
184
        $options = array();
185
186
        $this->assertRenderedView(<<<EOF
187
<div class="pagination">
188
    <ul>
189
        <li class="prev"><a href="|95|" rel="prev">&larr; Previous</a></li>
190
        <li><a href="|1|">1</a></li>
191
        <li class="disabled"><span>&hellip;</span></li>
192
        <li><a href="|93|">93</a></li>
193
        <li><a href="|94|">94</a></li>
194
        <li><a href="|95|">95</a></li>
195
        <li class="active"><span>96</span></li>
196
        <li><a href="|97|">97</a></li>
197
        <li><a href="|98|">98</a></li>
198
        <li><a href="|99|">99</a></li>
199
        <li><a href="|100|">100</a></li>
200
        <li class="next"><a href="|97|" rel="next">Next &rarr;</a></li>
201
    </ul>
202
</div>
203
EOF
204
        , $this->renderView($options));
205
    }
206
207
    public function testRenderModifyingProximity()
208
    {
209
        $this->setNbPages(100);
210
        $this->setCurrentPage(10);
211
212
        $options = array('proximity' => 2);
213
214
        $this->assertRenderedView(<<<EOF
215
<div class="pagination">
216
    <ul>
217
        <li class="prev"><a href="|9|" rel="prev">&larr; Previous</a></li>
218
        <li><a href="|1|">1</a></li>
219
        <li class="disabled"><span>&hellip;</span></li>
220
        <li><a href="|8|">8</a></li>
221
        <li><a href="|9|">9</a></li>
222
        <li class="active"><span>10</span></li>
223
        <li><a href="|11|">11</a></li>
224
        <li><a href="|12|">12</a></li>
225
        <li class="disabled"><span>&hellip;</span></li>
226
        <li><a href="|100|">100</a></li>
227
        <li class="next"><a href="|11|" rel="next">Next &rarr;</a></li>
228
    </ul>
229
</div>
230
EOF
231
        , $this->renderView($options));
232
    }
233
234
    public function testRenderModifyingPreviousAndNextMessages()
235
    {
236
        $this->setNbPages(100);
237
        $this->setCurrentPage(10);
238
239
        $options = array(
240
            'prev_message' => 'Anterior',
241
            'next_message' => 'Siguiente',
242
        );
243
244
        $this->assertRenderedView(<<<EOF
245
<div class="pagination">
246
    <ul>
247
        <li class="prev"><a href="|9|" rel="prev">Anterior</a></li>
248
        <li><a href="|1|">1</a></li>
249
        <li class="disabled"><span>&hellip;</span></li>
250
        <li><a href="|7|">7</a></li>
251
        <li><a href="|8|">8</a></li>
252
        <li><a href="|9|">9</a></li>
253
        <li class="active"><span>10</span></li>
254
        <li><a href="|11|">11</a></li>
255
        <li><a href="|12|">12</a></li>
256
        <li><a href="|13|">13</a></li>
257
        <li class="disabled"><span>&hellip;</span></li>
258
        <li><a href="|100|">100</a></li>
259
        <li class="next"><a href="|11|" rel="next">Siguiente</a></li>
260
    </ul>
261
</div>
262
EOF
263
        , $this->renderView($options));
264
    }
265
266
    public function testRenderModifyingCssClasses()
267
    {
268
        $this->setNbPages(100);
269
        $this->setCurrentPage(1);
270
271
        $options = array(
272
            'css_container_class' => 'paginacion',
273
            'css_prev_class'      => 'anterior',
274
            'css_next_class'      => 'siguiente',
275
            'css_disabled_class'  => 'deshabilitado',
276
            'css_dots_class'      => 'puntos',
277
            'css_active_class'    => 'activo',
278
        );
279
280
        $this->assertRenderedView(<<<EOF
281
<div class="paginacion">
282
    <ul>
283
        <li class="anterior deshabilitado"><span>&larr; Previous</span></li>
284
        <li class="activo"><span>1</span></li>
285
        <li><a href="|2|">2</a></li>
286
        <li><a href="|3|">3</a></li>
287
        <li><a href="|4|">4</a></li>
288
        <li><a href="|5|">5</a></li>
289
        <li><a href="|6|">6</a></li>
290
        <li><a href="|7|">7</a></li>
291
        <li class="puntos"><span>&hellip;</span></li>
292
        <li><a href="|100|">100</a></li>
293
        <li class="siguiente"><a href="|2|" rel="next">Next &rarr;</a></li>
294
    </ul>
295
</div>
296
EOF
297
        , $this->renderView($options));
298
    }
299
300
    protected function filterExpectedView($expected)
301
    {
302
        return $this->removeWhitespacesBetweenTags($expected);
303
    }
304
}
305