2014-08-23 23:14:07 +09:00
|
|
|
require "test_helper"
|
2010-04-20 23:05:11 +00:00
|
|
|
|
|
|
|
class WikiPageTest < ActiveSupport::TestCase
|
|
|
|
def create_wiki(params = {})
|
2024-01-08 19:39:01 +09:00
|
|
|
WikiPage.create({ title: "hoge", user_id: 1, body: "hoge", ip_addr: "127.0.0.1", is_locked: false }.merge(params))
|
2010-04-20 23:05:11 +00:00
|
|
|
end
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
def update_wiki(w1, params = {})
|
2019-08-17 20:37:02 +09:00
|
|
|
w1.update(params)
|
2010-04-20 23:05:11 +00:00
|
|
|
end
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
def test_normalize
|
2024-01-08 19:39:01 +09:00
|
|
|
w1 = create_wiki(title: "HOT POTATO")
|
2010-04-20 23:05:11 +00:00
|
|
|
assert_equal("hot_potato", w1.title)
|
|
|
|
end
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
def test_diff
|
|
|
|
# Still don't really understand the logic here
|
2024-01-08 19:39:01 +09:00
|
|
|
w1 = create_wiki(body: "hoge")
|
|
|
|
update_wiki(w1, body: "moge")
|
2010-04-20 23:05:11 +00:00
|
|
|
assert_equal("<del>moge</del><ins>hoge</ins>", w1.diff(1))
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2024-01-08 19:39:01 +09:00
|
|
|
w2 = create_wiki(body: "hoge")
|
|
|
|
update_wiki(w2, body: "moge hoge")
|
2010-04-20 23:05:11 +00:00
|
|
|
assert_equal("<del>moge </del>hoge", w2.diff(1))
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
# w3 = create_wiki(:body => "<h1>hoge</h1> <p>moge</p>")
|
|
|
|
# update_wiki(w3, :body => "<h2>hoge</h2> <p>moge</p>")
|
|
|
|
# assert_equal("<del><h2></del>hoge<del></h2> <p>moge</p></del>", w3.diff(1))
|
|
|
|
end
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
def test_find_page
|
|
|
|
w1 = create_wiki
|
2024-01-08 19:39:01 +09:00
|
|
|
update_wiki(w1, body: "moge")
|
|
|
|
update_wiki(w1, body: "moge moge")
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
w1 = WikiPage.find_page("hoge", 1)
|
|
|
|
assert_equal("hoge", w1.body)
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
w1 = WikiPage.find_page("hoge", 2)
|
|
|
|
assert_equal("moge", w1.body)
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
w1 = WikiPage.find_page("hoge", 3)
|
|
|
|
assert_equal("moge moge", w1.body)
|
|
|
|
end
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
def test_lock
|
|
|
|
w1 = create_wiki
|
2024-01-08 19:39:01 +09:00
|
|
|
update_wiki(w1, body: "moge")
|
|
|
|
update_wiki(w1, body: "moge moge")
|
2010-04-20 23:05:11 +00:00
|
|
|
|
|
|
|
w1.lock!
|
|
|
|
assert_equal(true, w1.is_locked?)
|
2024-01-08 19:39:01 +09:00
|
|
|
assert_equal(true, WikiPageVersion.find_by(wiki_page_id: w1.id, version: 1).is_locked?)
|
|
|
|
assert_equal(true, WikiPageVersion.find_by(wiki_page_id: w1.id, version: 2).is_locked?)
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
w1.unlock!
|
|
|
|
assert_equal(false, w1.is_locked?)
|
2024-01-08 19:39:01 +09:00
|
|
|
assert_equal(false, WikiPageVersion.find_by(wiki_page_id: w1.id, version: 1).is_locked?)
|
|
|
|
assert_equal(false, WikiPageVersion.find_by(wiki_page_id: w1.id, version: 2).is_locked?)
|
2010-04-20 23:05:11 +00:00
|
|
|
end
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
def test_rename
|
|
|
|
w1 = create_wiki
|
2024-01-08 19:39:01 +09:00
|
|
|
update_wiki(w1, body: "moge")
|
|
|
|
update_wiki(w1, body: "moge moge")
|
2010-04-20 23:05:11 +00:00
|
|
|
|
|
|
|
w1.rename!("shalala")
|
|
|
|
assert_not_nil(WikiPageVersion.find_by_title("shalala"))
|
|
|
|
end
|
2014-08-23 16:19:01 +09:00
|
|
|
|
2010-04-20 23:05:11 +00:00
|
|
|
def test_api
|
|
|
|
w1 = create_wiki
|
2016-08-16 05:45:10 +09:00
|
|
|
assert_nothing_raised { w1.to_json }
|
|
|
|
assert_nothing_raised { w1.to_xml }
|
2010-04-20 23:05:11 +00:00
|
|
|
end
|
|
|
|
end
|