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