Completed
Push — master ( 267988...a9e5cc )
by Sébastien
13:40
created

CustomColumnTest::testColumnType01b()   B

Complexity

Conditions 1
Paths 1

Size

Total Lines 29
Code Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 1 Features 1
Metric Value
c 1
b 1
f 1
dl 0
loc 29
rs 8.8571
cc 1
eloc 21
nc 1
nop 0
1
<?php
2
/**
3
 * COPS (Calibre OPDS PHP Server) test file
4
 *
5
 * @license    GPL 2 (http://www.gnu.org/licenses/gpl.html)
6
 * @author     Sébastien Lucas <[email protected]>
7
 */
8
9
require_once(dirname(__FILE__) . "/config_test.php");
10
require_once(dirname(__FILE__) . "/../book.php");
11
require_once (dirname(__FILE__) . "/../JSON_renderer.php");
12
13
class CustomColumnTest extends PHPUnit_Framework_TestCase
14
{
15
    public function testColumnType01()
16
    {
17
        global $config;
18
19
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
20
        $config['cops_calibre_custom_column'] = array("custom_01");
21
        Base::clearDb();
22
23
        $coltype = CustomColumnType::createByCustomID(8);
24
25
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_01"));
26
27
        $this->assertEquals(8, $coltype->customId);
28
        $this->assertEquals("custom_01", $coltype->columnTitle);
29
        $this->assertEquals("text", $coltype->datatype);
30
        $this->assertEquals("CustomColumnTypeText", get_class($coltype));
31
32
        $this->assertCount(3, $coltype->getAllCustomValues());
33
        $this->assertEquals("?page=14&custom=8", $coltype->getUriAllCustoms());
34
        $this->assertEquals("cops:custom:8", $coltype->getAllCustomsId());
35
        $this->assertEquals("custom_01", $coltype->getTitle());
36
        $this->assertEquals("Custom column example 01 (text)", $coltype->getDatabaseDescription());
37
        $this->assertEquals("Custom column example 01 (text)", $coltype->getDescription());
38
        $this->assertEquals(true, $coltype->isSearchable());
39
40
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
41
        $config['cops_calibre_custom_column'] = array();
42
        Base::clearDb();
43
    }
44
45
    public function testColumnType01b()
46
    {
47
        global $config;
48
49
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
50
        $config['cops_calibre_custom_column'] = array("custom_01b");
51
        Base::clearDb();
52
53
        $coltype = CustomColumnType::createByCustomID(16);
54
55
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_01b"));
56
57
        $this->assertEquals(16, $coltype->customId);
58
        $this->assertEquals("custom_01b", $coltype->columnTitle);
59
        $this->assertEquals("text", $coltype->datatype);
60
        $this->assertEquals("CustomColumnTypeText", get_class($coltype));
61
62
        $this->assertCount(3, $coltype->getAllCustomValues());
63
        $this->assertEquals("?page=14&custom=16", $coltype->getUriAllCustoms());
64
        $this->assertEquals("cops:custom:16", $coltype->getAllCustomsId());
65
        $this->assertEquals("custom_01b", $coltype->getTitle());
66
        $this->assertEquals(NULL, $coltype->getDatabaseDescription());
67
        $this->assertEquals("Custom column 'custom_01b'", $coltype->getDescription());
68
        $this->assertEquals(true, $coltype->isSearchable());
69
70
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
71
        $config['cops_calibre_custom_column'] = array();
72
        Base::clearDb();
73
    }
74
75
    public function testColumnType02()
76
    {
77
        global $config;
78
79
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
80
        $config['cops_calibre_custom_column'] = array("custom_02");
81
        Base::clearDb();
82
83
        $coltype = CustomColumnType::createByCustomID(6);
84
85
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_02"));
86
87
        $this->assertEquals(6, $coltype->customId);
88
        $this->assertEquals("custom_02", $coltype->columnTitle);
89
        $this->assertEquals("text", $coltype->datatype);
90
        $this->assertEquals("CustomColumnTypeText", get_class($coltype));
91
92
        $this->assertCount(3, $coltype->getAllCustomValues());
93
        $this->assertEquals("?page=14&custom=6", $coltype->getUriAllCustoms());
94
        $this->assertEquals("cops:custom:6", $coltype->getAllCustomsId());
95
        $this->assertEquals("custom_02", $coltype->getTitle());
96
        $this->assertEquals("Custom column example 02 (csv)", $coltype->getDatabaseDescription());
97
        $this->assertEquals("Custom column example 02 (csv)", $coltype->getDescription());
98
        $this->assertEquals(true, $coltype->isSearchable());
99
100
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
101
        $config['cops_calibre_custom_column'] = array();
102
        Base::clearDb();
103
    }
104
105
    public function testColumnType03()
106
    {
107
        global $config;
108
109
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
110
        $config['cops_calibre_custom_column'] = array("custom_03");
111
        Base::clearDb();
112
113
        $coltype = CustomColumnType::createByCustomID(7);
114
115
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_03"));
116
117
        $this->assertEquals(7, $coltype->customId);
118
        $this->assertEquals("custom_03", $coltype->columnTitle);
119
        $this->assertEquals("comments", $coltype->datatype);
120
        $this->assertEquals("CustomColumnTypeComment", get_class($coltype));
121
122
        $this->assertEquals("?page=14&custom=7", $coltype->getUriAllCustoms());
123
        $this->assertEquals("cops:custom:7", $coltype->getAllCustomsId());
124
        $this->assertEquals("custom_03", $coltype->getTitle());
125
        $this->assertEquals("Custom column example 03 (long_text)", $coltype->getDatabaseDescription());
126
        $this->assertEquals("Custom column example 03 (long_text)", $coltype->getDescription());
127
        $this->assertEquals(false, $coltype->isSearchable());
128
129
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
130
        $config['cops_calibre_custom_column'] = array();
131
        Base::clearDb();
132
    }
133
134
    public function testColumnType04()
135
    {
136
        global $config;
137
138
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
139
        $config['cops_calibre_custom_column'] = array("custom_04");
140
        Base::clearDb();
141
142
        $coltype = CustomColumnType::createByCustomID(4);
143
144
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_04"));
145
146
        $this->assertEquals(4, $coltype->customId);
147
        $this->assertEquals("custom_04", $coltype->columnTitle);
148
        $this->assertEquals("series", $coltype->datatype);
149
        $this->assertEquals("CustomColumnTypeSeries", get_class($coltype));
150
151
        $this->assertCount(3, $coltype->getAllCustomValues());
152
        $this->assertEquals("?page=14&custom=4", $coltype->getUriAllCustoms());
153
        $this->assertEquals("cops:custom:4", $coltype->getAllCustomsId());
154
        $this->assertEquals("custom_04", $coltype->getTitle());
155
        $this->assertEquals("Custom column example 04 (series_text)", $coltype->getDatabaseDescription());
156
        $this->assertEquals("Alphabetical index of the 3 series", $coltype->getDescription());
157
        $this->assertEquals(true, $coltype->isSearchable());
158
159
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
160
        $config['cops_calibre_custom_column'] = array();
161
        Base::clearDb();
162
    }
163
164
    public function testColumnType05()
165
    {
166
        global $config;
167
168
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
169
        $config['cops_calibre_custom_column'] = array("custom_05");
170
        Base::clearDb();
171
172
        $coltype = CustomColumnType::createByCustomID(5);
173
174
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_05"));
175
176
        $this->assertEquals(5, $coltype->customId);
177
        $this->assertEquals("custom_05", $coltype->columnTitle);
178
        $this->assertEquals("enumeration", $coltype->datatype);
179
        $this->assertEquals("CustomColumnTypeEnumeration", get_class($coltype));
180
181
        $this->assertCount(4, $coltype->getAllCustomValues());
182
        $this->assertEquals("?page=14&custom=5", $coltype->getUriAllCustoms());
183
        $this->assertEquals("cops:custom:5", $coltype->getAllCustomsId());
184
        $this->assertEquals("custom_05", $coltype->getTitle());
185
        $this->assertEquals("Custom column example 05 (enum)", $coltype->getDatabaseDescription());
186
        $this->assertEquals("Alphabetical index of the 4 values", $coltype->getDescription());
187
        $this->assertEquals(true, $coltype->isSearchable());
188
189
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
190
        $config['cops_calibre_custom_column'] = array();
191
        Base::clearDb();
192
    }
193
194
    public function testColumnType06()
195
    {
196
        global $config;
197
198
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
199
        $config['cops_calibre_custom_column'] = array("custom_06");
200
        Base::clearDb();
201
202
        $coltype = CustomColumnType::createByCustomID(12);
203
204
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_06"));
205
206
        $this->assertEquals(12, $coltype->customId);
207
        $this->assertEquals("custom_06", $coltype->columnTitle);
208
        $this->assertEquals("datetime", $coltype->datatype);
209
        $this->assertEquals("CustomColumnTypeDate", get_class($coltype));
210
211
        $this->assertCount(5, $coltype->getAllCustomValues());
212
        $this->assertEquals("?page=14&custom=12", $coltype->getUriAllCustoms());
213
        $this->assertEquals("cops:custom:12", $coltype->getAllCustomsId());
214
        $this->assertEquals("custom_06", $coltype->getTitle());
215
        $this->assertEquals("Custom column example 06 (date)", $coltype->getDatabaseDescription());
216
        $this->assertEquals("Custom column example 06 (date)", $coltype->getDescription());
217
        $this->assertEquals(true, $coltype->isSearchable());
218
219
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
220
        $config['cops_calibre_custom_column'] = array();
221
        Base::clearDb();
222
    }
223
224
    public function testColumnType07()
225
    {
226
        global $config;
227
228
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
229
        $config['cops_calibre_custom_column'] = array("custom_07");
230
        Base::clearDb();
231
232
        $coltype = CustomColumnType::createByCustomID(14);
233
234
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_07"));
235
236
        $this->assertEquals(14, $coltype->customId);
237
        $this->assertEquals("custom_07", $coltype->columnTitle);
238
        $this->assertEquals("float", $coltype->datatype);
239
        $this->assertEquals("CustomColumnTypeFloat", get_class($coltype));
240
241
        $this->assertCount(6, $coltype->getAllCustomValues());
242
        $this->assertEquals("?page=14&custom=14", $coltype->getUriAllCustoms());
243
        $this->assertEquals("cops:custom:14", $coltype->getAllCustomsId());
244
        $this->assertEquals("custom_07", $coltype->getTitle());
245
        $this->assertEquals("Custom column example 07 (float)", $coltype->getDatabaseDescription());
246
        $this->assertEquals("Custom column example 07 (float)", $coltype->getDescription());
247
        $this->assertEquals(true, $coltype->isSearchable());
248
249
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
250
        $config['cops_calibre_custom_column'] = array();
251
        Base::clearDb();
252
    }
253
254
    public function testColumnType08()
255
    {
256
        global $config;
257
258
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
259
        $config['cops_calibre_custom_column'] = array("custom_08");
260
        Base::clearDb();
261
262
        $coltype = CustomColumnType::createByCustomID(10);
263
264
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_08"));
265
266
        $this->assertEquals(10, $coltype->customId);
267
        $this->assertEquals("custom_08", $coltype->columnTitle);
268
        $this->assertEquals("int", $coltype->datatype);
269
        $this->assertEquals("CustomColumnTypeInteger", get_class($coltype));
270
271
        $this->assertCount(4, $coltype->getAllCustomValues());
272
        $this->assertEquals("?page=14&custom=10", $coltype->getUriAllCustoms());
273
        $this->assertEquals("cops:custom:10", $coltype->getAllCustomsId());
274
        $this->assertEquals("custom_08", $coltype->getTitle());
275
        $this->assertEquals("Custom column example 08 (int)", $coltype->getDatabaseDescription());
276
        $this->assertEquals("Custom column example 08 (int)", $coltype->getDescription());
277
        $this->assertEquals(true, $coltype->isSearchable());
278
279
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
280
        $config['cops_calibre_custom_column'] = array();
281
        Base::clearDb();
282
    }
283
284
    public function testColumnType09()
285
    {
286
        global $config;
287
288
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
289
        $config['cops_calibre_custom_column'] = array("custom_09");
290
        Base::clearDb();
291
292
        $coltype = CustomColumnType::createByCustomID(9);
293
294
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_09"));
295
296
        $this->assertEquals(9, $coltype->customId);
297
        $this->assertEquals("custom_09", $coltype->columnTitle);
298
        $this->assertEquals("rating", $coltype->datatype);
299
        $this->assertEquals("CustomColumnTypeRating", get_class($coltype));
300
301
        $this->assertCount(6, $coltype->getAllCustomValues());
302
        $this->assertEquals("?page=14&custom=9", $coltype->getUriAllCustoms());
303
        $this->assertEquals("cops:custom:9", $coltype->getAllCustomsId());
304
        $this->assertEquals("custom_09", $coltype->getTitle());
305
        $this->assertEquals("Custom column example 09 (rating)", $coltype->getDatabaseDescription());
306
        $this->assertEquals("Index of ratings", $coltype->getDescription());
307
        $this->assertEquals(true, $coltype->isSearchable());
308
309
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
310
        $config['cops_calibre_custom_column'] = array();
311
        Base::clearDb();
312
    }
313
314
    public function testColumnType10()
315
    {
316
        global $config;
317
318
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
319
        $config['cops_calibre_custom_column'] = array("custom_10");
320
        Base::clearDb();
321
322
        $coltype = CustomColumnType::createByCustomID(11);
323
324
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_10"));
325
326
        $this->assertEquals(11, $coltype->customId);
327
        $this->assertEquals("custom_10", $coltype->columnTitle);
328
        $this->assertEquals("bool", $coltype->datatype);
329
        $this->assertEquals("CustomColumnTypeBool", get_class($coltype));
330
331
        $this->assertCount(3, $coltype->getAllCustomValues());
332
        $this->assertEquals("?page=14&custom=11", $coltype->getUriAllCustoms());
333
        $this->assertEquals("cops:custom:11", $coltype->getAllCustomsId());
334
        $this->assertEquals("custom_10", $coltype->getTitle());
335
        $this->assertEquals("Custom column example 10 (bool)", $coltype->getDatabaseDescription());
336
        $this->assertEquals("Index of a boolean value", $coltype->getDescription());
337
        $this->assertEquals(true, $coltype->isSearchable());
338
339
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
340
        $config['cops_calibre_custom_column'] = array();
341
        Base::clearDb();
342
    }
343
344
    public function testColumnType11()
345
    {
346
        global $config;
347
348
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
349
        $config['cops_calibre_custom_column'] = array("custom_11");
350
        Base::clearDb();
351
352
        $coltype = CustomColumnType::createByCustomID(15);
353
354
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_11"));
355
356
        $this->assertEquals(NULL, $coltype);
357
358
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
359
        $config['cops_calibre_custom_column'] = array();
360
        Base::clearDb();
361
    }
362
363
    public function testColumnType12()
364
    {
365
        global $config;
366
367
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
368
        $config['cops_calibre_custom_column'] = array("custom_12");
369
        Base::clearDb();
370
371
        $coltype = CustomColumnType::createByCustomID(13);
372
373
        $this->assertEquals($coltype, CustomColumnType::createByLookup("custom_12"));
374
375
        $this->assertEquals(NULL, $coltype);
376
377
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
378
        $config['cops_calibre_custom_column'] = array();
379
        Base::clearDb();
380
    }
381
382
    public function testInvalidColumn1()
383
    {
384
        global $config;
385
386
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
387
        $config['cops_calibre_custom_column'] = array("custom_12");
388
        Base::clearDb();
389
390
        $catch = false;
391
        try {
392
            CustomColumnType::createByCustomID(999);
393
        } catch (Exception $e) {
394
            $catch = true;
395
        }
396
397
        $this->assertTrue($catch);
398
399
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
400
        $config['cops_calibre_custom_column'] = array();
401
        Base::clearDb();
402
    }
403
404
    public function testInvalidColumn2()
405
    {
406
        global $config;
407
408
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
409
        $config['cops_calibre_custom_column'] = array("custom_12");
410
        Base::clearDb();
411
412
        $coltype = CustomColumnType::createByLookup("__ERR__");
413
414
        $this->assertEquals(NULL, $coltype);
415
416
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
417
        $config['cops_calibre_custom_column'] = array();
418
        Base::clearDb();
419
    }
420
421
    public function testIndexTypeAll()
422
    {
423
        global $config;
424
425
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
426
        $config['cops_calibre_custom_column'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10");
427
        Base::clearDb();
428
429
        $currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
430
        $currentPage->InitializeContent();
431
432
        $this->assertCount(15, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
433
        $this->assertEquals("custom_01", $currentPage->entryArray[ 4]->title);
434
        $this->assertEquals("custom_02", $currentPage->entryArray[ 5]->title);
435
        $this->assertEquals("custom_04", $currentPage->entryArray[ 6]->title);
436
        $this->assertEquals("custom_05", $currentPage->entryArray[ 7]->title);
437
        $this->assertEquals("custom_06", $currentPage->entryArray[ 8]->title);
438
        $this->assertEquals("custom_07", $currentPage->entryArray[ 9]->title);
439
        $this->assertEquals("custom_08", $currentPage->entryArray[10]->title);
440
        $this->assertEquals("custom_09", $currentPage->entryArray[11]->title);
441
        $this->assertEquals("custom_10", $currentPage->entryArray[12]->title);
442
443
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
444
        $config['cops_calibre_custom_column'] = array();
445
        Base::clearDb();
446
    }
447
448
    public function testIndexType01()
449
    {
450
        global $config;
451
452
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
453
        $config['cops_calibre_custom_column'] = array("custom_01");
454
        Base::clearDb();
455
456
        $currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
457
        $currentPage->InitializeContent();
458
459
        $this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
460
        $this->assertEquals("custom_01", $currentPage->entryArray[4]->title);
461
        $this->assertEquals("cops:custom:8", $currentPage->entryArray[4]->id);
462
        $this->assertEquals("Custom column example 01 (text)", $currentPage->entryArray[4]->content);
463
        $this->assertEquals(3, $currentPage->entryArray[4]->numberOfElement);
464
        $this->assertEquals("text", $currentPage->entryArray[4]->contentType);
465
        $this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(8)->getCount());
466
467
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
468
        $config['cops_calibre_custom_column'] = array();
469
        Base::clearDb();
470
    }
471
472
    public function testIndexType02()
473
    {
474
        global $config;
475
476
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
477
        $config['cops_calibre_custom_column'] = array("custom_02");
478
        Base::clearDb();
479
480
        $currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
481
        $currentPage->InitializeContent();
482
483
        $this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
484
        $this->assertEquals("custom_02", $currentPage->entryArray[4]->title);
485
        $this->assertEquals("cops:custom:6", $currentPage->entryArray[4]->id);
486
        $this->assertEquals("Custom column example 02 (csv)", $currentPage->entryArray[4]->content);
487
        $this->assertEquals(3, $currentPage->entryArray[4]->numberOfElement);
488
        $this->assertEquals("text", $currentPage->entryArray[4]->contentType);
489
        $this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(6)->getCount());
490
491
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
492
        $config['cops_calibre_custom_column'] = array();
493
        Base::clearDb();
494
    }
495
496
    public function testIndexType03()
497
    {
498
        global $config;
499
500
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
501
        $config['cops_calibre_custom_column'] = array("custom_03");
502
        Base::clearDb();
503
504
        $currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
505
        $currentPage->InitializeContent();
506
507
        $this->assertCount(6, $currentPage->entryArray); // Authors, Series, Publishers, Languages, All, Recent
508
509
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
510
        $config['cops_calibre_custom_column'] = array();
511
        Base::clearDb();
512
    }
513
514
    public function testIndexType04()
515
    {
516
        global $config;
517
518
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
519
        $config['cops_calibre_custom_column'] = array("custom_04");
520
        Base::clearDb();
521
522
        $currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
523
        $currentPage->InitializeContent();
524
525
        $this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
526
        $this->assertEquals("custom_04", $currentPage->entryArray[4]->title);
527
        $this->assertEquals("cops:custom:4", $currentPage->entryArray[4]->id);
528
        $this->assertEquals("Alphabetical index of the 3 series", $currentPage->entryArray[4]->content);
529
        $this->assertEquals(3, $currentPage->entryArray[4]->numberOfElement);
530
        $this->assertEquals("series", $currentPage->entryArray[4]->contentType);
531
        $this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(4)->getCount());
532
533
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
534
        $config['cops_calibre_custom_column'] = array();
535
        Base::clearDb();
536
    }
537
538
    public function testIndexType05()
539
    {
540
        global $config;
541
542
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
543
        $config['cops_calibre_custom_column'] = array("custom_05");
544
        Base::clearDb();
545
546
        $currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
547
        $currentPage->InitializeContent();
548
549
        $this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
550
        $this->assertEquals("custom_05", $currentPage->entryArray[4]->title);
551
        $this->assertEquals("cops:custom:5", $currentPage->entryArray[4]->id);
552
        $this->assertEquals("Alphabetical index of the 4 values", $currentPage->entryArray[4]->content);
553
        $this->assertEquals(4, $currentPage->entryArray[4]->numberOfElement);
554
        $this->assertEquals("enumeration", $currentPage->entryArray[4]->contentType);
555
        $this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(5)->getCount());
556
557
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
558
        $config['cops_calibre_custom_column'] = array();
559
        Base::clearDb();
560
    }
561
562
    public function testIndexType06()
563
    {
564
        global $config;
565
566
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
567
        $config['cops_calibre_custom_column'] = array("custom_06");
568
        Base::clearDb();
569
570
        $currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
571
        $currentPage->InitializeContent();
572
573
        $this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
574
        $this->assertEquals("custom_06", $currentPage->entryArray[4]->title);
575
        $this->assertEquals("cops:custom:12", $currentPage->entryArray[4]->id);
576
        $this->assertEquals("Custom column example 06 (date)", $currentPage->entryArray[4]->content);
577
        $this->assertEquals(5, $currentPage->entryArray[4]->numberOfElement);
578
        $this->assertEquals("datetime", $currentPage->entryArray[4]->contentType);
579
        $this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(12)->getCount());
580
581
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
582
        $config['cops_calibre_custom_column'] = array();
583
        Base::clearDb();
584
    }
585
586
    public function testIndexType07()
587
    {
588
        global $config;
589
590
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
591
        $config['cops_calibre_custom_column'] = array("custom_07");
592
        Base::clearDb();
593
594
        $currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
595
        $currentPage->InitializeContent();
596
597
        $this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
598
        $this->assertEquals("custom_07", $currentPage->entryArray[4]->title);
599
        $this->assertEquals("cops:custom:14", $currentPage->entryArray[4]->id);
600
        $this->assertEquals("Custom column example 07 (float)", $currentPage->entryArray[4]->content);
601
        $this->assertEquals(6, $currentPage->entryArray[4]->numberOfElement);
602
        $this->assertEquals("float", $currentPage->entryArray[4]->contentType);
603
        $this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(14)->getCount());
604
605
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
606
        $config['cops_calibre_custom_column'] = array();
607
        Base::clearDb();
608
    }
609
610
    public function testIndexType08()
611
    {
612
        global $config;
613
614
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
615
        $config['cops_calibre_custom_column'] = array("custom_08");
616
        Base::clearDb();
617
618
        $currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
619
        $currentPage->InitializeContent();
620
621
        $this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
622
        $this->assertEquals("custom_08", $currentPage->entryArray[4]->title);
623
        $this->assertEquals("cops:custom:10", $currentPage->entryArray[4]->id);
624
        $this->assertEquals("Custom column example 08 (int)", $currentPage->entryArray[4]->content);
625
        $this->assertEquals(4, $currentPage->entryArray[4]->numberOfElement);
626
        $this->assertEquals("int", $currentPage->entryArray[4]->contentType);
627
        $this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(10)->getCount());
628
629
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
630
        $config['cops_calibre_custom_column'] = array();
631
        Base::clearDb();
632
    }
633
634
    public function testIndexType09()
635
    {
636
        global $config;
637
638
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
639
        $config['cops_calibre_custom_column'] = array("custom_09");
640
        Base::clearDb();
641
642
        $currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
643
        $currentPage->InitializeContent();
644
645
        $this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
646
        $this->assertEquals("custom_09", $currentPage->entryArray[4]->title);
647
        $this->assertEquals("cops:custom:9", $currentPage->entryArray[4]->id);
648
        $this->assertEquals("Index of ratings", $currentPage->entryArray[4]->content);
649
        $this->assertEquals(6, $currentPage->entryArray[4]->numberOfElement);
650
        $this->assertEquals("rating", $currentPage->entryArray[4]->contentType);
651
        $this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(9)->getCount());
652
653
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
654
        $config['cops_calibre_custom_column'] = array();
655
        Base::clearDb();
656
    }
657
658
    public function testIndexType10()
659
    {
660
        global $config;
661
662
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
663
        $config['cops_calibre_custom_column'] = array("custom_10");
664
        Base::clearDb();
665
666
        $currentPage = Page::getPage(Base::PAGE_INDEX, NULL, NULL, "1");
667
        $currentPage->InitializeContent();
668
669
        $this->assertCount(7, $currentPage->entryArray); // Authors, Series, Publishers, Languages, custom, All, Recent
670
        $this->assertEquals("custom_10", $currentPage->entryArray[4]->title);
671
        $this->assertEquals("cops:custom:11", $currentPage->entryArray[4]->id);
672
        $this->assertEquals("Index of a boolean value", $currentPage->entryArray[4]->content);
673
        $this->assertEquals(3, $currentPage->entryArray[4]->numberOfElement);
674
        $this->assertEquals("bool", $currentPage->entryArray[4]->contentType);
675
        $this->assertEquals($currentPage->entryArray[4], CustomColumnType::createByCustomID(11)->getCount());
676
677
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
678
        $config['cops_calibre_custom_column'] = array();
679
        Base::clearDb();
680
    }
681
682
    public function testAllCustomsType01()
683
    {
684
        global $config;
685
686
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
687
        $_GET["custom"] = "8";
688
        Base::clearDb();
689
        $currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
690
        $currentPage->InitializeContent();
691
692
693
        $this->assertEquals("custom_01", $currentPage->title);
694
        $this->assertCount(3, $currentPage->entryArray);
695
        $this->assertEquals("cops:custom:8:3", $currentPage->entryArray[0]->id);
696
        $this->assertEquals("cops:custom:8:1", $currentPage->entryArray[1]->id);
697
        $this->assertEquals("cops:custom:8:2", $currentPage->entryArray[2]->id);
698
699
700
        $_GET["custom"] = NULL;
701
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
702
        Base::clearDb();
703
    }
704
705
    public function testAllCustomsType02()
706
    {
707
        global $config;
708
709
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
710
        $_GET["custom"] = "6";
711
        Base::clearDb();
712
        $currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
713
        $currentPage->InitializeContent();
714
715
716
        $this->assertEquals("custom_02", $currentPage->title);
717
        $this->assertCount(3, $currentPage->entryArray);
718
        $this->assertEquals("cops:custom:6:1", $currentPage->entryArray[0]->id);
719
        $this->assertEquals("cops:custom:6:2", $currentPage->entryArray[1]->id);
720
        $this->assertEquals("cops:custom:6:3", $currentPage->entryArray[2]->id);
721
722
723
        $_GET["custom"] = NULL;
724
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
725
        Base::clearDb();
726
    }
727
728
    public function testAllCustomsType04()
729
    {
730
        global $config;
731
732
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
733
        $_GET["custom"] = "4";
734
        Base::clearDb();
735
        $currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
736
        $currentPage->InitializeContent();
737
738
739
        $this->assertEquals("custom_04", $currentPage->title);
740
        $this->assertCount(3, $currentPage->entryArray);
741
        $this->assertEquals("cops:custom:4:4", $currentPage->entryArray[0]->id);
742
        $this->assertEquals("cops:custom:4:5", $currentPage->entryArray[1]->id);
743
        $this->assertEquals("cops:custom:4:6", $currentPage->entryArray[2]->id);
744
745
746
        $_GET["custom"] = NULL;
747
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
748
        Base::clearDb();
749
    }
750
751
    public function testAllCustomsType05()
752
    {
753
        global $config;
754
755
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
756
        $_GET["custom"] = "5";
757
        Base::clearDb();
758
        $currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
759
        $currentPage->InitializeContent();
760
761
762
        $this->assertEquals("custom_05", $currentPage->title);
763
        $this->assertCount(4, $currentPage->entryArray);
764
        $this->assertEquals("cops:custom:5:3", $currentPage->entryArray[0]->id);
765
        $this->assertEquals("cops:custom:5:4", $currentPage->entryArray[1]->id);
766
        $this->assertEquals("cops:custom:5:5", $currentPage->entryArray[2]->id);
767
        $this->assertEquals("cops:custom:5:6", $currentPage->entryArray[3]->id);
768
769
770
        $_GET["custom"] = NULL;
771
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
772
        Base::clearDb();
773
    }
774
775
    public function testAllCustomsType06()
776
    {
777
        global $config;
778
779
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
780
        $_GET["custom"] = "12";
781
        Base::clearDb();
782
        $currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
783
        $currentPage->InitializeContent();
784
785
786
        $this->assertEquals("custom_06", $currentPage->title);
787
        $this->assertCount(5, $currentPage->entryArray);
788
        $this->assertEquals("cops:custom:12:2000-01-01", $currentPage->entryArray[0]->id);
789
        $this->assertEquals("cops:custom:12:2000-01-02", $currentPage->entryArray[1]->id);
790
        $this->assertEquals("cops:custom:12:2000-01-03", $currentPage->entryArray[2]->id);
791
        $this->assertEquals("cops:custom:12:2016-04-20", $currentPage->entryArray[3]->id);
792
        $this->assertEquals("cops:custom:12:2016-04-24", $currentPage->entryArray[4]->id);
793
794
795
        $_GET["custom"] = NULL;
796
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
797
        Base::clearDb();
798
    }
799
800
    public function testAllCustomsType07()
801
    {
802
        global $config;
803
804
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
805
        $_GET["custom"] = "14";
806
        Base::clearDb();
807
        $currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
808
        $currentPage->InitializeContent();
809
810
811
        $this->assertEquals("custom_07", $currentPage->title);
812
        $this->assertCount(6, $currentPage->entryArray);
813
        $this->assertEquals("cops:custom:14:-99.0", $currentPage->entryArray[0]->id);
814
        $this->assertEquals("cops:custom:14:0.0", $currentPage->entryArray[1]->id);
815
        $this->assertEquals("cops:custom:14:0.1", $currentPage->entryArray[2]->id);
816
        $this->assertEquals("cops:custom:14:0.2", $currentPage->entryArray[3]->id);
817
        $this->assertEquals("cops:custom:14:11.0", $currentPage->entryArray[4]->id);
818
        $this->assertEquals("cops:custom:14:100000.0", $currentPage->entryArray[5]->id);
819
820
821
        $_GET["custom"] = NULL;
822
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
823
        Base::clearDb();
824
    }
825
826
    public function testAllCustomsType08()
827
    {
828
        global $config;
829
830
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
831
        $_GET["custom"] = "10";
832
        Base::clearDb();
833
        $currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
834
        $currentPage->InitializeContent();
835
836
837
        $this->assertEquals("custom_08", $currentPage->title);
838
        $this->assertCount(4, $currentPage->entryArray);
839
        $this->assertEquals("cops:custom:10:-2", $currentPage->entryArray[0]->id);
840
        $this->assertEquals("cops:custom:10:-1", $currentPage->entryArray[1]->id);
841
        $this->assertEquals("cops:custom:10:1",  $currentPage->entryArray[2]->id);
842
        $this->assertEquals("cops:custom:10:2",  $currentPage->entryArray[3]->id);
843
844
845
        $_GET["custom"] = NULL;
846
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
847
        Base::clearDb();
848
    }
849
850
    public function testAllCustomsType09()
851
    {
852
        global $config;
853
854
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
855
        $_GET["custom"] = "9";
856
        Base::clearDb();
857
        $currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
858
        $currentPage->InitializeContent();
859
860
861
        $this->assertEquals("custom_09", $currentPage->title);
862
        $this->assertCount(6, $currentPage->entryArray);
863
        $this->assertEquals("cops:custom:9:0",  $currentPage->entryArray[0]->id);
864
        $this->assertEquals("cops:custom:9:2",  $currentPage->entryArray[1]->id);
865
        $this->assertEquals("cops:custom:9:4",  $currentPage->entryArray[2]->id);
866
        $this->assertEquals("cops:custom:9:6",  $currentPage->entryArray[3]->id);
867
        $this->assertEquals("cops:custom:9:8",  $currentPage->entryArray[4]->id);
868
        $this->assertEquals("cops:custom:9:10", $currentPage->entryArray[5]->id);
869
870
871
        $_GET["custom"] = NULL;
872
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
873
        Base::clearDb();
874
    }
875
876
    public function testAllCustomsType10()
877
    {
878
        global $config;
879
880
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
881
        $_GET["custom"] = "11";
882
        Base::clearDb();
883
        $currentPage = Page::getPage(Base::PAGE_ALL_CUSTOMS, NULL, NULL, "1");
884
        $currentPage->InitializeContent();
885
886
887
        $this->assertEquals("custom_10", $currentPage->title);
888
        $this->assertCount(3, $currentPage->entryArray);
889
        $this->assertEquals("cops:custom:11:-1", $currentPage->entryArray[0]->id);
890
        $this->assertEquals("cops:custom:11:0",  $currentPage->entryArray[1]->id);
891
        $this->assertEquals("cops:custom:11:1",  $currentPage->entryArray[2]->id);
892
893
894
        $_GET["custom"] = NULL;
895
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
896
        Base::clearDb();
897
    }
898
899
    public function testDetailTypeAllEntryIDs()
900
    {
901
        global $config;
902
903
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
904
        $_GET["custom"] = "11";
905
        $config['cops_calibre_custom_column'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
906
        Base::clearDb();
907
908
        $currentPage = Page::getPage(Base::PAGE_CUSTOM_DETAIL, "0", NULL, "1");
909
        $currentPage->InitializeContent();
910
911
        /* @var EntryBook[] $entries */
912
        $entries = $currentPage->entryArray;
913
914
        $this->assertCount(6, $entries);
915
916
        $customcolumnValues = $entries[0]->book->getCustomColumnValues($config['cops_calibre_custom_column']);
917
918
        $this->assertCount(10, $customcolumnValues);
919
920
        $this->assertEquals("cops:custom:8:1", $customcolumnValues[0]->getEntryId());
921
        $this->assertEquals("cops:custom:6:3", $customcolumnValues[1]->getEntryId());
922
        $this->assertEquals("cops:custom:7:3", $customcolumnValues[2]->getEntryId());
923
        $this->assertEquals("cops:custom:4:4", $customcolumnValues[3]->getEntryId());
924
        $this->assertEquals("cops:custom:5:6", $customcolumnValues[4]->getEntryId());
925
        $this->assertEquals("cops:custom:12:2016-04-24", $customcolumnValues[5]->getEntryId());
926
        $this->assertEquals("cops:custom:14:11.0", $customcolumnValues[6]->getEntryId());
927
        $this->assertEquals("cops:custom:10:-2", $customcolumnValues[7]->getEntryId());
928
        $this->assertEquals("cops:custom:9:2", $customcolumnValues[8]->getEntryId());
929
        $this->assertEquals("cops:custom:11:0", $customcolumnValues[9]->getEntryId());
930
931
        $_GET["custom"] = NULL;
932
        $config['cops_calibre_custom_column'] = array();
933
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
934
        Base::clearDb();
935
    }
936
937
    public function testRenderCustomColumns()
938
    {
939
        global $config;
940
941
        $_SERVER["HTTP_USER_AGENT"] = "Firefox";
942
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
943
        $_GET["custom"] = "11";
944
        $config['cops_calibre_custom_column'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
945
        $config['cops_calibre_custom_column_list'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
946
        $config['cops_calibre_custom_column_preview'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
947
        Base::clearDb();
948
949
950
        $book = Book::getBookById(223);
951
        $json = JSONRenderer::getBookContentArray($book);
0 ignored issues
show
Bug introduced by
It seems like $book defined by \Book::getBookById(223) on line 950 can be null; however, JSONRenderer::getBookContentArray() does not accept null, maybe add an additional type check?

Unless you are absolutely sure that the expression can never be null because of other conditions, we strongly recommend to add an additional type check to your code:

/** @return stdClass|null */
function mayReturnNull() { }

function doesNotAcceptNull(stdClass $x) { }

// With potential error.
function withoutCheck() {
    $x = mayReturnNull();
    doesNotAcceptNull($x); // Potential error here.
}

// Safe - Alternative 1
function withCheck1() {
    $x = mayReturnNull();
    if ( ! $x instanceof stdClass) {
        throw new \LogicException('$x must be defined.');
    }
    doesNotAcceptNull($x);
}

// Safe - Alternative 2
function withCheck2() {
    $x = mayReturnNull();
    if ($x instanceof stdClass) {
        doesNotAcceptNull($x);
    }
}
Loading history...
952
953
        /* @var CustomColumn[] $custom */
954
        $custom = $json["customcolumns_list"];
955
956
        $this->assertEquals("custom_01", $custom[0]->customColumnType->columnTitle);
957
        $this->assertEquals($custom[0]->customColumnType->getTitle(), $custom[0]->customColumnType->columnTitle);
958
        $this->assertEquals("2", $custom[0]->htmlvalue);
959
        $this->assertEquals($custom[0]->getHTMLEncodedValue(), $custom[0]->htmlvalue);
960
961
        $this->assertEquals("custom_02", $custom[1]->customColumnType->columnTitle);
962
        $this->assertEquals($custom[1]->customColumnType->getTitle(), $custom[1]->customColumnType->columnTitle);
963
        $this->assertEquals("1", $custom[1]->htmlvalue);
964
        $this->assertEquals($custom[1]->getHTMLEncodedValue(), $custom[1]->htmlvalue);
965
966
        $this->assertEquals("custom_03", $custom[2]->customColumnType->columnTitle);
967
        $this->assertEquals($custom[2]->customColumnType->getTitle(), $custom[2]->customColumnType->columnTitle);
968
        $this->assertEquals("<div>Not Set</div>", $custom[2]->htmlvalue);
969
        $this->assertEquals($custom[2]->getHTMLEncodedValue(), $custom[2]->htmlvalue);
970
971
        $this->assertEquals("custom_04", $custom[3]->customColumnType->columnTitle);
972
        $this->assertEquals($custom[3]->customColumnType->getTitle(), $custom[3]->customColumnType->columnTitle);
973
        $this->assertEquals("", $custom[3]->htmlvalue);
974
        $this->assertEquals($custom[3]->getHTMLEncodedValue(), $custom[3]->htmlvalue);
975
976
        $this->assertEquals("custom_05", $custom[4]->customColumnType->columnTitle);
977
        $this->assertEquals($custom[4]->customColumnType->getTitle(), $custom[4]->customColumnType->columnTitle);
978
        $this->assertEquals("6", $custom[4]->htmlvalue);
979
        $this->assertEquals($custom[4]->getHTMLEncodedValue(), $custom[4]->htmlvalue);
980
981
        $this->assertEquals("custom_06", $custom[5]->customColumnType->columnTitle);
982
        $this->assertEquals($custom[5]->customColumnType->getTitle(), $custom[5]->customColumnType->columnTitle);
983
        $this->assertEquals("Not Set", $custom[5]->htmlvalue);
984
        $this->assertEquals($custom[5]->getHTMLEncodedValue(), $custom[5]->htmlvalue);
985
986
        $this->assertEquals("custom_07", $custom[6]->customColumnType->columnTitle);
987
        $this->assertEquals($custom[6]->customColumnType->getTitle(), $custom[6]->customColumnType->columnTitle);
988
        $this->assertEquals("100000.0", $custom[6]->htmlvalue);
989
        $this->assertEquals($custom[6]->getHTMLEncodedValue(), $custom[6]->htmlvalue);
990
991
        $this->assertEquals("custom_08", $custom[7]->customColumnType->columnTitle);
992
        $this->assertEquals($custom[7]->customColumnType->getTitle(), $custom[7]->customColumnType->columnTitle);
993
        $this->assertEquals("Not Set", $custom[7]->htmlvalue);
994
        $this->assertEquals($custom[7]->getHTMLEncodedValue(), $custom[7]->htmlvalue);
995
996
        $this->assertEquals("custom_09", $custom[8]->customColumnType->columnTitle);
997
        $this->assertEquals($custom[8]->customColumnType->getTitle(), $custom[8]->customColumnType->columnTitle);
998
        $this->assertEquals("Not Set", $custom[8]->htmlvalue);
999
        $this->assertEquals($custom[8]->getHTMLEncodedValue(), $custom[8]->htmlvalue);
1000
1001
        $this->assertEquals("custom_10", $custom[9]->customColumnType->columnTitle);
1002
        $this->assertEquals($custom[9]->customColumnType->getTitle(), $custom[9]->customColumnType->columnTitle);
1003
        $this->assertEquals("No", $custom[9]->htmlvalue);
1004
        $this->assertEquals($custom[9]->getHTMLEncodedValue(), $custom[9]->htmlvalue);
1005
1006
        $_SERVER["HTTP_USER_AGENT"] = "";
1007
        $_GET["custom"] = NULL;
1008
        $config['cops_calibre_custom_column'] = array();
1009
        $config['cops_calibre_custom_column_list'] = array();
1010
        $config['cops_calibre_custom_column_preview'] = array();
1011
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
1012
        Base::clearDb();
1013
    }
1014
1015
    public function testQueries()
1016
    {
1017
        global $config;
1018
1019
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
1020
        $_GET["custom"] = "11";
1021
        $config['cops_calibre_custom_column'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
1022
        Base::clearDb();
1023
1024
1025
        list($query, $params) = CustomColumnType::createByLookup("custom_01")->getCustom("1")->getQuery();
1026
        Book::getEntryArray($query, $params, 1);
1027
1028
        list($query, $params) = CustomColumnType::createByLookup("custom_02")->getCustom("3")->getQuery();
1029
        Book::getEntryArray($query, $params, 1);
1030
1031
        list($query, $params) = CustomColumnType::createByLookup("custom_03")->getCustom("3")->getQuery();
1032
        Book::getEntryArray($query, $params, 1);
1033
1034
        list($query, $params) = CustomColumnType::createByLookup("custom_04")->getCustom("4")->getQuery();
1035
        Book::getEntryArray($query, $params, 1);
1036
1037
        list($query, $params) = CustomColumnType::createByLookup("custom_05")->getCustom("6")->getQuery();
1038
        Book::getEntryArray($query, $params, 1);
1039
1040
        list($query, $params) = CustomColumnType::createByLookup("custom_06")->getCustom("2016-04-24")->getQuery();
1041
        Book::getEntryArray($query, $params, 1);
1042
1043
        list($query, $params) = CustomColumnType::createByLookup("custom_07")->getCustom("11.0")->getQuery();
1044
        Book::getEntryArray($query, $params, 1);
1045
1046
        list($query, $params) = CustomColumnType::createByLookup("custom_08")->getCustom("-2")->getQuery();
1047
        Book::getEntryArray($query, $params, 1);
1048
1049
        list($query, $params) = CustomColumnType::createByLookup("custom_09")->getCustom("0")->getQuery();
1050
        Book::getEntryArray($query, $params, 1);
1051
1052
        list($query, $params) = CustomColumnType::createByLookup("custom_09")->getCustom("1")->getQuery();
1053
        Book::getEntryArray($query, $params, 1);
1054
1055
        list($query, $params) = CustomColumnType::createByLookup("custom_10")->getCustom("-1")->getQuery();
1056
        Book::getEntryArray($query, $params, 1);
1057
1058
        list($query, $params) = CustomColumnType::createByLookup("custom_10")->getCustom("0")->getQuery();
1059
        Book::getEntryArray($query, $params, 1);
1060
1061
        list($query, $params) = CustomColumnType::createByLookup("custom_10")->getCustom("1")->getQuery();
1062
        Book::getEntryArray($query, $params, 1);
1063
1064
        $_GET["custom"] = NULL;
1065
        $config['cops_calibre_custom_column'] = array();
1066
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
1067
        Base::clearDb();
1068
    }
1069
1070
    public function testGetURI()
1071
    {
1072
        global $config;
1073
1074
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithCustomColumns/";
1075
        $_GET["custom"] = "11";
1076
        $config['cops_calibre_custom_column'] = array("custom_01", "custom_02", "custom_03", "custom_04", "custom_05", "custom_06", "custom_07", "custom_08", "custom_09", "custom_10", "custom_11");
1077
        Base::clearDb();
1078
1079
1080
        $custom = CustomColumnType::createByLookup("custom_01")->getCustom("1");
1081
        $this->assertEquals($custom->customColumnType->getQuery("1"), $custom->getQuery());
1082
1083
        $custom = CustomColumnType::createByLookup("custom_02")->getCustom("3");
1084
        $this->assertEquals($custom->customColumnType->getQuery("3"), $custom->getQuery());
1085
1086
        $custom = CustomColumnType::createByLookup("custom_03")->getCustom("3");
1087
        $this->assertEquals($custom->customColumnType->getQuery("3"), $custom->getQuery());
1088
1089
        $custom = CustomColumnType::createByLookup("custom_04")->getCustom("4");
1090
        $this->assertEquals($custom->customColumnType->getQuery("4"), $custom->getQuery());
1091
1092
        $custom = CustomColumnType::createByLookup("custom_05")->getCustom("6");
1093
        $this->assertEquals($custom->customColumnType->getQuery("6"), $custom->getQuery());
1094
1095
        $custom = CustomColumnType::createByLookup("custom_06")->getCustom("2016-04-24");
1096
        $this->assertEquals($custom->customColumnType->getQuery("2016-04-24"), $custom->getQuery());
1097
1098
        $custom = CustomColumnType::createByLookup("custom_07")->getCustom("11.0");
1099
        $this->assertEquals($custom->customColumnType->getQuery("11.0"), $custom->getQuery());
1100
1101
        $custom = CustomColumnType::createByLookup("custom_08")->getCustom("-2");
1102
        $this->assertEquals($custom->customColumnType->getQuery("-2"), $custom->getQuery());
1103
1104
        $custom = CustomColumnType::createByLookup("custom_09")->getCustom("0");
1105
        $this->assertEquals($custom->customColumnType->getQuery("0"), $custom->getQuery());
1106
1107
        $custom = CustomColumnType::createByLookup("custom_09")->getCustom("1");
1108
        $this->assertEquals($custom->customColumnType->getQuery("1"), $custom->getQuery());
1109
1110
        $custom = CustomColumnType::createByLookup("custom_10")->getCustom("-1");
1111
        $this->assertEquals($custom->customColumnType->getQuery("-1"), $custom->getQuery());
1112
1113
        $custom = CustomColumnType::createByLookup("custom_10")->getCustom("0");
1114
        $this->assertEquals($custom->customColumnType->getQuery("0"), $custom->getQuery());
1115
1116
        $custom = CustomColumnType::createByLookup("custom_10")->getCustom("1");
1117
        $this->assertEquals($custom->customColumnType->getQuery("1"), $custom->getQuery());
1118
1119
        $_GET["custom"] = NULL;
1120
        $config['cops_calibre_custom_column'] = array();
1121
        $config['calibre_directory'] = dirname(__FILE__) . "/BaseWithSomeBooks/";
1122
        Base::clearDb();
1123
    }
1124
}