xref: /plugin/struct/_test/ColumnTest.php (revision 8fed17f342cc190557a6ce94d1787f9e2f63cb6c)
1*8fed17f3SAndreas Gohr<?php
2*8fed17f3SAndreas Gohr
3*8fed17f3SAndreas Gohrnamespace dokuwiki\plugin\struct\test;
4*8fed17f3SAndreas Gohr
5*8fed17f3SAndreas Gohruse dokuwiki\plugin\struct\meta;
6*8fed17f3SAndreas Gohr
7*8fed17f3SAndreas Gohr/**
8*8fed17f3SAndreas Gohr * Tests for the Column object
9*8fed17f3SAndreas Gohr *
10*8fed17f3SAndreas Gohr * @group plugin_struct
11*8fed17f3SAndreas Gohr * @group plugins
12*8fed17f3SAndreas Gohr */
13*8fed17f3SAndreas Gohrclass ColumnTest extends StructTest
14*8fed17f3SAndreas Gohr{
15*8fed17f3SAndreas Gohr
16*8fed17f3SAndreas Gohr    public function test_allTypes()
17*8fed17f3SAndreas Gohr    {
18*8fed17f3SAndreas Gohr
19*8fed17f3SAndreas Gohr        $expect = [
20*8fed17f3SAndreas Gohr            'Checkbox' => 'dokuwiki\\plugin\\struct\\types\\Checkbox',
21*8fed17f3SAndreas Gohr            'Color' => 'dokuwiki\\plugin\\struct\\types\\Color',
22*8fed17f3SAndreas Gohr            'Date' => 'dokuwiki\\plugin\\struct\\types\\Date',
23*8fed17f3SAndreas Gohr            'DateTime' => 'dokuwiki\\plugin\\struct\\types\\DateTime',
24*8fed17f3SAndreas Gohr            'Decimal' => 'dokuwiki\\plugin\\struct\\types\\Decimal',
25*8fed17f3SAndreas Gohr            'Dropdown' => 'dokuwiki\\plugin\\struct\\types\\Dropdown',
26*8fed17f3SAndreas Gohr            'LongText' => 'dokuwiki\\plugin\\struct\\types\\LongText',
27*8fed17f3SAndreas Gohr            'Lookup' => 'dokuwiki\\plugin\\struct\\types\\Lookup',
28*8fed17f3SAndreas Gohr            'Mail' => 'dokuwiki\\plugin\\struct\\types\\Mail',
29*8fed17f3SAndreas Gohr            'Media' => 'dokuwiki\\plugin\\struct\\types\\Media',
30*8fed17f3SAndreas Gohr            'Page' => 'dokuwiki\\plugin\\struct\\types\\Page',
31*8fed17f3SAndreas Gohr            'Tag' => 'dokuwiki\\plugin\\struct\\types\\Tag',
32*8fed17f3SAndreas Gohr            'Text' => 'dokuwiki\\plugin\\struct\\types\\Text',
33*8fed17f3SAndreas Gohr            'Url' => 'dokuwiki\\plugin\\struct\\types\\Url',
34*8fed17f3SAndreas Gohr            'User' => 'dokuwiki\\plugin\\struct\\types\\User',
35*8fed17f3SAndreas Gohr            'Wiki' => 'dokuwiki\\plugin\\struct\\types\\Wiki'
36*8fed17f3SAndreas Gohr        ];
37*8fed17f3SAndreas Gohr
38*8fed17f3SAndreas Gohr        $this->assertEquals($expect, meta\Column::allTypes(true));
39*8fed17f3SAndreas Gohr    }
40*8fed17f3SAndreas Gohr
41*8fed17f3SAndreas Gohr    public function test_extendedTypes()
42*8fed17f3SAndreas Gohr    {
43*8fed17f3SAndreas Gohr
44*8fed17f3SAndreas Gohr        $expect = [
45*8fed17f3SAndreas Gohr            'Checkbox' => 'dokuwiki\\plugin\\struct\\types\\Checkbox',
46*8fed17f3SAndreas Gohr            'Color' => 'dokuwiki\\plugin\\struct\\types\\Color',
47*8fed17f3SAndreas Gohr            'Date' => 'dokuwiki\\plugin\\struct\\types\\Date',
48*8fed17f3SAndreas Gohr            'DateTime' => 'dokuwiki\\plugin\\struct\\types\\DateTime',
49*8fed17f3SAndreas Gohr            'Decimal' => 'dokuwiki\\plugin\\struct\\types\\Decimal',
50*8fed17f3SAndreas Gohr            'Dropdown' => 'dokuwiki\\plugin\\struct\\types\\Dropdown',
51*8fed17f3SAndreas Gohr            'LongText' => 'dokuwiki\\plugin\\struct\\types\\LongText',
52*8fed17f3SAndreas Gohr            'Lookup' => 'dokuwiki\\plugin\\struct\\types\\Lookup',
53*8fed17f3SAndreas Gohr            'Mail' => 'dokuwiki\\plugin\\struct\\types\\Mail',
54*8fed17f3SAndreas Gohr            'Media' => 'dokuwiki\\plugin\\struct\\types\\Media',
55*8fed17f3SAndreas Gohr            'Page' => 'dokuwiki\\plugin\\struct\\types\\Page',
56*8fed17f3SAndreas Gohr            'test' => 'some\\test\\class',
57*8fed17f3SAndreas Gohr            'Tag' => 'dokuwiki\\plugin\\struct\\types\\Tag',
58*8fed17f3SAndreas Gohr            'Text' => 'dokuwiki\\plugin\\struct\\types\\Text',
59*8fed17f3SAndreas Gohr            'Url' => 'dokuwiki\\plugin\\struct\\types\\Url',
60*8fed17f3SAndreas Gohr            'User' => 'dokuwiki\\plugin\\struct\\types\\User',
61*8fed17f3SAndreas Gohr            'Wiki' => 'dokuwiki\\plugin\\struct\\types\\Wiki'
62*8fed17f3SAndreas Gohr        ];
63*8fed17f3SAndreas Gohr
64*8fed17f3SAndreas Gohr        global $EVENT_HANDLER;
65*8fed17f3SAndreas Gohr        $EVENT_HANDLER->register_hook('PLUGIN_STRUCT_TYPECLASS_INIT', 'BEFORE', $this, 'event');
66*8fed17f3SAndreas Gohr        $this->assertEquals($expect, meta\Column::allTypes(true));
67*8fed17f3SAndreas Gohr    }
68*8fed17f3SAndreas Gohr
69*8fed17f3SAndreas Gohr    /**
70*8fed17f3SAndreas Gohr     * Fake event that adds a new type to the list of types
71*8fed17f3SAndreas Gohr     *
72*8fed17f3SAndreas Gohr     * @param \Doku_Event $event
73*8fed17f3SAndreas Gohr     * @param $param
74*8fed17f3SAndreas Gohr     */
75*8fed17f3SAndreas Gohr    public function event(\Doku_Event $event, $param)
76*8fed17f3SAndreas Gohr    {
77*8fed17f3SAndreas Gohr        $event->data['test'] = 'some\\test\\class';
78*8fed17f3SAndreas Gohr    }
79*8fed17f3SAndreas Gohr
80*8fed17f3SAndreas Gohr}
81