Merge branch 'master' of http://git.tine20.org/git/Syncope
[tine20] / tine20 / library / Syncope / tests / bootstrap.php
1 <?php
2
3 $paths = array(
4 realpath(dirname(__FILE__)),
5 realpath(dirname(__FILE__) . '/../lib'),
6 get_include_path()
7 );
8 set_include_path(implode(PATH_SEPARATOR, $paths));
9
10 require_once 'Zend/Loader/Autoloader.php';
11 $autoloader = Zend_Loader_Autoloader::getInstance();
12 $autoloader->setFallbackAutoloader(true);
13
14 function getTestDatabase()
15 {
16     if (file_exists('/tmp/syncope_test.sq3')) {
17         unlink('/tmp/syncope_test.sq3');
18     }
19     
20     // create in memory database by default 
21     $params = array (
22         #'dbname' => '/tmp/syncope_test.sq3',
23         'dbname' => ':memory:'
24     );
25     
26     $db = Zend_Db::factory('PDO_SQLITE', $params);
27     
28     // enable foreign keys
29     #$db->query('PRAGMA read_uncommitted = true');
30     
31     $db->query("CREATE TABLE IF NOT EXISTS `syncope_device` (
32         `id` varchar(40) NOT NULL,
33         `deviceid` varchar(64) NOT NULL,                                                                                                                                                                         
34         `devicetype` varchar(64) NOT NULL,
35         `policykey` varchar(64) DEFAULT NULL,
36         `owner_id` varchar(40) NOT NULL,
37         `useragent` varchar(255) DEFAULT NULL,
38         `policy_id` varchar(40) DEFAULT NULL,
39         `acsversion` varchar(40) DEFAULT NULL,
40         `pinglifetime` int(11) DEFAULT NULL,
41         `remotewipe` int(11) DEFAULT '0',
42         `pingfolder` longblob,
43         PRIMARY KEY (`id`)
44         )");
45
46     $db->query("CREATE TABLE IF NOT EXISTS `syncope_folder` (
47         `id` varchar(40) NOT NULL,
48         `device_id` varchar(40) NOT NULL,
49         `class` varchar(64) NOT NULL,
50         `folderid` varchar(254) NOT NULL,
51         `parentid` varchar(254) DEFAULT NULL,
52         `displayname` varchar(254) NOT NULL,
53         `type` int(11) NOT NULL,
54         `creation_time` datetime NOT NULL,
55         `lastfiltertype` int(11) DEFAULT NULL,
56         PRIMARY KEY (`id`),
57         UNIQUE (`device_id`,`class`,`folderid`)
58         )");
59     
60     $db->query("CREATE TABLE `syncope_synckey` (
61         `id` varchar(40) NOT NULL,
62         `device_id` varchar(40) NOT NULL,
63         `type` varchar(64) NOT NULL,
64         `counter` int(11) NOT NULL DEFAULT '0',
65         `lastsync` datetime NOT NULL,
66         `pendingdata` longblob,
67         PRIMARY KEY (`id`),
68         UNIQUE (`device_id`,`type`,`counter`)
69     )");
70     
71     $db->query("CREATE TABLE `syncope_content` (
72         `id` varchar(40) NOT NULL,
73         `device_id` varchar(40) NOT NULL,
74         `folder_id` varchar(40) NOT NULL,
75         `contentid` varchar(64) NOT NULL,
76         `creation_time` datetime NOT NULL,
77         `creation_synckey` int(11) NOT NULL,
78         `is_deleted` int(11) DEFAULT '0',
79         PRIMARY KEY (`id`),
80         UNIQUE (`device_id`,`folder_id`,`contentid`)
81     )");
82     
83     return $db;
84 }