wiki.pl: Port some fixes from upstream
[Orgmuse.git] / t / lock.t
blobb20be17d06ca447467459bb4abf2aecf9e809cb1
1 # Copyright (C) 2006  Alex Schroeder <alex@emacswiki.org>
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.
8 # This program is distributed in the hope that it will be useful,
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 # GNU General Public License for more details.
13 # You should have received a copy of the GNU General Public License
14 # along with this program; if not, write to the
15 #    Free Software Foundation, Inc.
16 #    59 Temple Place, Suite 330
17 #    Boston, MA 02111-1307 USA
19 require 't/test.pl';
20 package OddMuse;
21 use Test::More tests => 17;
23 clear_pages();
24 test_page(get_page('action=editlock'), 'operation is restricted');
25 test_page(get_page('action=editlock pwd=foo'), 'Edit lock created');
26 xpath_test(update_page('TestLock', 'mu!'),
27            '//a[@href="http://localhost/wiki.pl?action=password"][@class="password"][text()="This page is read-only"]');
28 test_page($redirect, '403 FORBIDDEN', 'Editing not allowed for TestLock');
29 test_page(get_page('action=editlock set=0'), 'operation is restricted');
30 test_page(get_page('action=editlock set=0 pwd=foo'), 'Edit lock removed');
31 RequestLockDir('main');
32 test_page(update_page('TestLock', 'mu!'), 'This page is empty');
33 test_page($redirect, 'Status: 503 SERVICE UNAVAILABLE',
34           'Could not get main lock', 'File exists',
35           'The lock was created (just now|1 second ago|2 seconds ago)');
36 test_page(update_page('TestLock', 'mu!'), 'This page is empty');
37 test_page($redirect, 'Status: 503 SERVICE UNAVAILABLE',
38           'Could not get main lock', 'File exists',
39           'The lock was created \d+ seconds ago');