2018-03-20 02:45:42 +00:00
|
|
|
import json
|
|
|
|
|
|
|
|
from django.core.urlresolvers import reverse
|
|
|
|
import seaserv
|
|
|
|
from seaserv import seafile_api, ccnet_api
|
2018-03-20 10:00:20 +00:00
|
|
|
|
2018-03-20 02:45:42 +00:00
|
|
|
from seahub.wiki.models import Wiki
|
|
|
|
from seahub.test_utils import BaseTestCase
|
|
|
|
|
|
|
|
|
|
|
|
class WikiPagesViewTest(BaseTestCase):
|
|
|
|
def setUp(self):
|
2018-03-20 10:00:20 +00:00
|
|
|
self.wiki = Wiki.objects.add('test wiki pages', self.user.username,
|
2018-03-20 02:45:42 +00:00
|
|
|
repo_id=self.repo.id)
|
|
|
|
|
2018-03-20 10:00:20 +00:00
|
|
|
self.url = reverse('api-v2.1-wiki-pages', args=[self.wiki.slug])
|
2018-03-20 02:45:42 +00:00
|
|
|
|
|
|
|
seaserv.post_empty_file(self.repo.id, "/", "987.md",
|
|
|
|
self.user.username)
|
2018-03-20 10:00:20 +00:00
|
|
|
seaserv.post_empty_file(self.repo.id, "/", "789.md",
|
|
|
|
self.user.username)
|
|
|
|
|
|
|
|
def test_can_list_pages(self):
|
|
|
|
self.login_as(self.user)
|
|
|
|
|
|
|
|
resp = self.client.get(self.url)
|
|
|
|
json_resp = json.loads(resp.content)
|
|
|
|
self.assertEqual(200, resp.status_code)
|
|
|
|
assert len(json_resp['data']) == 2
|
|
|
|
|
|
|
|
def test_can_list_public_wiki_pages(self):
|
|
|
|
self.wiki.permission = 'public'
|
|
|
|
self.wiki.save()
|
2018-03-20 02:45:42 +00:00
|
|
|
|
|
|
|
resp = self.client.get(self.url)
|
|
|
|
json_resp = json.loads(resp.content)
|
|
|
|
self.assertEqual(200, resp.status_code)
|
|
|
|
assert len(json_resp['data']) == 2
|
|
|
|
|
|
|
|
def test_can_add_page(self):
|
2018-03-20 10:00:20 +00:00
|
|
|
self.login_as(self.user)
|
|
|
|
|
2018-03-20 02:45:42 +00:00
|
|
|
resp = self.client.post(self.url, {
|
|
|
|
'name': '2018',
|
|
|
|
})
|
|
|
|
json_resp = json.loads(resp.content)
|
|
|
|
|
|
|
|
self.assertEqual(200, resp.status_code)
|
|
|
|
assert json_resp['name'] == '2018'
|
|
|
|
|
2018-03-20 10:00:20 +00:00
|
|
|
def test_list_pages_sorted_by_name(self):
|
|
|
|
self.login_as(self.user)
|
|
|
|
|
|
|
|
seaserv.post_empty_file(self.repo.id, "/", "issues.md",
|
|
|
|
self.user.username)
|
|
|
|
seaserv.post_empty_file(self.repo.id, "/", "home.md",
|
|
|
|
self.user.username)
|
|
|
|
seaserv.post_empty_file(self.repo.id, "/", "img test.md",
|
|
|
|
self.user.username)
|
|
|
|
|
|
|
|
resp = self.client.get(self.url)
|
|
|
|
json_resp = json.loads(resp.content)
|
|
|
|
names = [e['name'] for e in json_resp['data']]
|
|
|
|
assert names[0] == '789'
|
|
|
|
assert names[-1] == 'issues'
|
2018-03-20 02:45:42 +00:00
|
|
|
|
|
|
|
class WikiPageViewTest(BaseTestCase):
|
|
|
|
def setUp(self):
|
|
|
|
|
|
|
|
self.wiki = Wiki.objects.add('test wiki page', self.user.username,
|
|
|
|
repo_id=self.repo.id)
|
|
|
|
self.url = reverse('api-v2.1-wiki-page', args=[self.wiki.slug, "home"])
|
|
|
|
self.create_file_with_content(file_name='home.md',
|
|
|
|
parent_dir='/',
|
|
|
|
content='2018',
|
|
|
|
username=self.user.username)
|
|
|
|
|
2018-03-20 10:00:20 +00:00
|
|
|
def test_can_get_page_content(self):
|
|
|
|
self.login_as(self.user)
|
|
|
|
|
2018-03-20 02:45:42 +00:00
|
|
|
resp = self.client.get(self.url)
|
|
|
|
json_resp = json.loads(resp.content)
|
|
|
|
self.assertEqual(200, resp.status_code)
|
|
|
|
assert json_resp['content'] == '2018'
|
|
|
|
assert json_resp['meta']['name'] == 'home'
|
|
|
|
|
2018-03-20 10:00:20 +00:00
|
|
|
def test_can_get_public_page(self):
|
|
|
|
self.wiki.permission = 'public'
|
|
|
|
self.wiki.save()
|
|
|
|
|
|
|
|
resp = self.client.get(self.url)
|
|
|
|
self.assertEqual(200, resp.status_code)
|
|
|
|
|
2018-03-20 02:45:42 +00:00
|
|
|
def test_can_delete_page(self):
|
2018-03-20 10:00:20 +00:00
|
|
|
self.login_as(self.user)
|
|
|
|
|
2018-03-20 02:45:42 +00:00
|
|
|
resp = self.client.delete(self.url)
|
|
|
|
self.assertEqual(200, resp.status_code)
|