source: Dev/branches/rest-dojo-ui/server/tonic/tests/filesystem.php @ 274

Last change on this file since 274 was 256, checked in by hendrikvanantwerpen, 13 years ago

Reworked project structure based on REST interaction and Dojo library. As
soon as this is stable, the old jQueryUI branch can be removed (it's
kept for reference).

File size: 3.9 KB
Line 
1<?php
2
3require_once('../lib/tonic.php');
4require_once('../examples/filesystem/filesystem.php');
5
6/**
7 * @namespace Tonic\Tests
8 */
9class FilesystemTester extends UnitTestCase {
10   
11    function testReadFile() {
12       
13        $testFilename = sys_get_temp_dir().DIRECTORY_SEPARATOR.'tonicFilesystemTest';
14        file_put_contents($testFilename, 'test');
15       
16        $config = array(
17            'uri' => '/filesystem/one/tonicFilesystemTest'
18        );
19       
20        $request = new Request($config);
21        $resource = $request->loadResource();
22        $response = $resource->exec($request);
23       
24        $this->assertEqual($response->code, 200);
25        $this->assertEqual($response->body, 'test');
26       
27        unlink($testFilename);
28    }
29   
30    function testReadDefaultDocument() {
31       
32        $testFilename = sys_get_temp_dir().DIRECTORY_SEPARATOR.'default.html';
33        file_put_contents($testFilename, 'test');
34       
35        $config = array(
36            'uri' => '/filesystem/one/'
37        );
38       
39        $request = new Request($config);
40       
41        $resource = $request->loadResource();
42        $response = $resource->exec($request);
43       
44        $this->assertEqual($response->code, 200);
45        $this->assertEqual($response->body, 'test');
46       
47        unlink($testFilename);
48       
49    }
50   
51    function testReadNoResource() {
52       
53        $config = array(
54            'uri' => '/filesystem/one/tonicFilesystemTestDoesntExist'
55        );
56       
57        $request = new Request($config);
58        $resource = $request->loadResource();
59        $response = $resource->exec($request);
60       
61        $this->assertEqual($response->code, 404);
62       
63    }
64   
65    function testCreateResource() {
66       
67        $testFilename = sys_get_temp_dir().DIRECTORY_SEPARATOR.'tonicFilesystemTest';
68       
69        $config = array(
70            'uri' => '/filesystem/one/tonicFilesystemTest',
71            'method' => 'PUT'
72        );
73       
74        $request = new Request($config);
75        $resource = $request->loadResource();
76        $response = $resource->exec($request);
77       
78        $this->assertEqual($response->code, 411);
79       
80        $config['data'] = 'test';
81       
82        $request = new Request($config);
83        $resource = $request->loadResource();
84        $response = $resource->exec($request);
85       
86        $this->assertEqual($response->code, 204);
87        $this->assertTrue(file_exists($testFilename));
88        $this->assertEqual(file_get_contents($testFilename), 'test');
89       
90        unlink($testFilename);
91       
92    }
93   
94    function testDeleteResource() {
95       
96        $testFilename = sys_get_temp_dir().DIRECTORY_SEPARATOR.'tonicFilesystemTest';
97        file_put_contents($testFilename, 'test');
98       
99        $config = array(
100            'uri' => '/filesystem/one/tonicFilesystemTest',
101            'method' => 'DELETE'
102        );
103       
104        $request = new Request($config);
105        $resource = $request->loadResource();
106        $response = $resource->exec($request);
107       
108        $this->assertEqual($response->code, 204);
109        $this->assertFalse(file_exists($testFilename));
110       
111    }
112   
113    function testDeleteNoResource() {
114       
115        $config = array(
116            'uri' => '/filesystem/one/tonicFilesystemTestDoesntExist',
117            'method' => 'DELETE'
118        );
119       
120        $request = new Request($config);
121        $resource = $request->loadResource();
122        $response = $resource->exec($request);
123       
124        $this->assertEqual($response->code, 404);
125       
126    }
127   
128}
129
130
131/* Test resource definitions */
132
133/**
134 * @namespace Tonic\Tests
135 * @uri /filesystem/one
136 * @uri /filesystem/one/.*
137 */
138class TestFileSystem extends FilesystemResource {
139   
140    function __construct($parameters) {
141       
142        parent::__construct($parameters);
143        $this->path = sys_get_temp_dir().DIRECTORY_SEPARATOR;
144        $this->uriStub = '/filesystem/one/';
145       
146    }
147   
148}
149
Note: See TracBrowser for help on using the repository browser.