1<?php
2/**
3 * @group plugin_data
4 * @group plugins
5 */
6class action_handle_test extends DokuWikiTest {
7
8    protected $pluginsEnabled = array('data', 'sqlite');
9
10    protected $action;
11    /** @var helper_plugin_data */
12    protected $helper;
13    /** @var helper_plugin_sqlite */
14    protected $db;
15
16    public function tearDown() {
17        parent::tearDown();
18
19        $this->db->query('DELETE FROM pages WHERE page = ?','test');
20    }
21
22    public function setUp() {
23        parent::setUp();
24
25        $this->action = new action_plugin_data();
26        $this->helper = plugin_load('helper', 'data');
27        $this->db = $this->helper->_getDB();
28
29        $this->db->query('INSERT INTO pages ( pid, page, title , class , lastmod) VALUES
30            (?, ?, ?, ?, ?)', 1 , 'test', 'title', 'class', time());
31    }
32
33    function testHandleStillPresent() {
34
35        $data = array(
36            0 => array(
37                1 => 'dataentry'
38            ),
39            1 => '',
40            2 => 'test'
41        );
42        $event = new Doku_Event('', $data);
43        $this->action->_handle($event, null);
44
45        $pid = $this->getTestPageId();
46        $this->assertFalse(!$pid);
47    }
48
49    function testHandleDelete() {
50        $data = array(
51            0 => array(
52                1 => 'no entry'
53            ),
54            1 => '',
55            2 => 'test'
56        );
57
58        $event = new Doku_Event('', $data);
59        $this->action->_handle($event, null);
60
61        $res = $this->db->query('SELECT pid FROM pages WHERE page = ?','test');
62        $pid = $this->db->res2single($res);
63        $this->assertTrue(!$pid);
64    }
65
66
67    private function getTestPageId() {
68        $res = $this->db->query('SELECT pid FROM pages WHERE page = ?','test');
69        $pid = (int) $this->db->res2single($res);
70        return $pid;
71    }
72}
73