mirror of
https://github.com/moebooru/moebooru
synced 2025-08-22 09:57:31 +00:00
103 lines
2.8 KiB
Ruby
103 lines
2.8 KiB
Ruby
require "test_helper"
|
|
|
|
class NoteControllerTest < ActionController::TestCase
|
|
fixtures :users
|
|
|
|
def create_post(tags, user_id = 1, params = {})
|
|
post = Post.create({ user_id: user_id, score: 0, source: "", rating: "s", width: 100, height: 100, ip_addr: "127.0.0.1", updater_ip_addr: "127.0.0.1", updater_user_id: 1, tags: tags, status: "active", file: upload_file("#{Rails.root}/test/mocks/test/test#{@post_number}.jpg") }.merge(params))
|
|
@post_number += 1
|
|
post
|
|
end
|
|
|
|
def create_note(body, post_id, params = {})
|
|
Note.create({ user_id: 1, x: 0, y: 0, width: 100, height: 100, ip_addr: "127.0.0.1", is_active: true, post_id: post_id, body: body }.merge(params))
|
|
end
|
|
|
|
def setup_test
|
|
@post_number = 1
|
|
@post1 = create_post("tag1")
|
|
@post2 = create_post("tag2")
|
|
end
|
|
|
|
def test_create
|
|
setup_test
|
|
|
|
# Assume note locking is tested in the unit tests
|
|
post :update, params: { note: { post_id: @post1.id, x: 100, y: 200, height: 300, width: 400, body: "moogles" } }, session: { user_id: 1 }
|
|
assert_equal(1, @post1.notes.size)
|
|
assert_equal(100, @post1.notes[0].x)
|
|
assert_equal("moogles", @post1.notes[0].body)
|
|
assert_equal(1, @post1.notes[0].user_id)
|
|
|
|
# TODO: test privileges
|
|
end
|
|
|
|
def test_update
|
|
setup_test
|
|
|
|
note = create_note("moogles", @post1.id)
|
|
post :update, params: { id: note.id, note: { body: "hoge" } }, session: { user_id: 1 }
|
|
note.reload
|
|
assert_equal("hoge", note.body)
|
|
# TODO: test privileges
|
|
end
|
|
|
|
def test_revert
|
|
setup_test
|
|
|
|
note = create_note("hoge", @post1.id)
|
|
note.update(body: "mark ii")
|
|
note.update(body: "mark iii")
|
|
|
|
post :revert, params: { id: note.id, version: 1 }, session: { user_id: 1 }
|
|
note.reload
|
|
assert_equal("hoge", note.body)
|
|
|
|
post :revert, params: { id: note.id, version: 3 }, session: { user_id: 1 }
|
|
note.reload
|
|
assert_equal("mark iii", note.body)
|
|
end
|
|
|
|
def test_history
|
|
setup_test
|
|
|
|
note = create_note("hoge", @post1.id)
|
|
|
|
get :history, session: { user_id: 1 }
|
|
assert_response :success
|
|
|
|
get :history, params: { id: note.id }, session: { user_id: 1 }
|
|
assert_response :success
|
|
|
|
get :history, params: { post_id: @post1.id }, session: { user_id: 1 }
|
|
assert_response :success
|
|
|
|
get :history, params: { user_id: 1 }, session: { user_id: 1 }
|
|
assert_response :success
|
|
end
|
|
|
|
def test_index
|
|
setup_test
|
|
|
|
create_note("hoge", @post1.id)
|
|
|
|
get :index, session: { user_id: 1 }
|
|
assert_response :success
|
|
|
|
get :index, params: { post_id: @post1.id }, session: { user_id: 1 }
|
|
assert_response :success
|
|
end
|
|
|
|
def test_search
|
|
setup_test
|
|
|
|
create_note("hoge", @post1.id)
|
|
|
|
get :search, session: { user_id: 1 }
|
|
assert_response :success
|
|
|
|
get :search, params: { query: "hoge" }, session: { user_id: 1 }
|
|
assert_response :success
|
|
end
|
|
end
|