* Added note version controller and test

* Added pool version controller and test
* Refactored unit tests for post disapprovals
* Renamed PostModerationDetail to PostDisapproval
This commit is contained in:
albert
2011-01-25 18:13:05 -05:00
parent 0cfaed90f8
commit 683d4583ac
22 changed files with 428 additions and 199 deletions

View File

@@ -0,0 +1,42 @@
require 'test_helper'
class NoteVersionsControllerTest < ActionController::TestCase
context "The note versions controller" do
setup do
@user = Factory.create(:user)
CurrentUser.user = @user
CurrentUser.ip_addr = "127.0.0.1"
end
teardown do
CurrentUser.user = nil
CurrentUser.ip_addr = nil
end
context "index action" do
setup do
@note = Factory.create(:note)
CurrentUser.id = 20
@note.body = "1 2"
@note.create_version
CurrentUser.id = 30
@note.body = "1 2 3"
@note.create_version
end
should "list all versions" do
get :index
assert_response :success
assert_not_nil(assigns(:note_versions))
assert_equal(3, assigns(:note_versions).size)
end
should "list all versions that match the search criteria" do
get :index, {:search => {:updater_id_equals => "20"}}
assert_response :success
assert_not_nil(assigns(:note_versions))
assert_equal(1, assigns(:note_versions).size)
end
end
end
end

View File

@@ -1,8 +1,40 @@
require 'test_helper'
class PoolVersionsControllerTest < ActionController::TestCase
# Replace this with your real tests.
test "the truth" do
assert true
context "The pool versions controller" do
setup do
@user = Factory.create(:user)
CurrentUser.user = @user
CurrentUser.ip_addr = "127.0.0.1"
end
teardown do
CurrentUser.user = nil
CurrentUser.ip_addr = nil
end
context "index action" do
setup do
@pool = Factory.create(:pool)
CurrentUser.id = 20
@pool.versions.create(:post_ids => "1 2")
CurrentUser.id = 30
@pool.versions.create(:post_ids => "1 2 3 4")
end
should "list all versions" do
get :index
assert_response :success
assert_not_nil(assigns(:pool_versions))
assert_equal(3, assigns(:pool_versions).size)
end
should "list all versions that match the search criteria" do
get :index, {:search => {:updater_id_equals => "20"}}
assert_response :success
assert_not_nil(assigns(:pool_versions))
assert_equal(1, assigns(:pool_versions).size)
end
end
end
end

View File

@@ -1,37 +1,51 @@
require "test_helper"
class PostModerationControllerTest < ActionController::TestCase
context "A post moderation controller" do
should "" do
ModQueuePost.destroy_all
context "The post moderation controller" do
setup do
@mod = Factory.create(:moderator_user)
CurrentUser.user = @mod
CurrentUser.ip_addr = "127.0.0.1"
end
teardown do
CurrentUser.user = nil
CurrentUser.ip_addr = nil
end
context "moderate action" do
setup do
@post = Factory.create(:post, :is_pending => true)
end
should "list all pending posts" do
get :moderate, {}, {:user_id => @mod.id}
assert_response :success
end
end
context "approve action" do
setup do
@post = Factory.create(:post, :is_pending => true)
end
should "approve a post" do
post :approve, {:post_id => @post.id}, {:user_id => @mod.id}
@post.reload
assert(!@post.is_pending?)
end
end
context "disapprove action" do
setup do
@post = Factory.create(:post, :is_pending => true)
end
p1 = create_post("hoge", :status => "pending")
p2 = create_post("hoge", :status => "active")
p3 = create_post("moge", :status => "active")
p2.flag!("sage", User.find(1))
p2.reload
assert_not_nil(p2.flag_detail)
get :moderate, {}, {:user_id => 1}
assert_response :success
get :moderate, {:query => "moge"}, {:user_id => 1}
assert_response :success
post :moderate, {:id => p1.id, :commit => "Approve"}, {:user_id => 1}
p1.reload
assert_equal("active", p1.status)
post :moderate, {:id => p3.id, :reason => "sage", :commit => "Delete"}, {:user_id => 1}
p3.reload
assert_equal("deleted", p3.status)
assert_not_nil(p3.flag_detail)
assert_equal("sage", p3.flag_detail.reason)
assert_equal(0, ModQueuePost.count)
post :moderate, {:id => "3", :commit => "Hide"}, {:user_id => 1}
assert_equal(1, ModQueuePost.count)
should "disapprove a post" do
assert_difference("PostDisapproval.count", 1) do
post :disapprove, {:post_id => @post.id}, {:user_id => @mod.id}
end
end
end
end
end

View File

@@ -0,0 +1,105 @@
require "test_helper"
class PostsControllerTest < ActionController::TestCase
context "The posts controller" do
setup do
@users = {}
@users[:anon] = AnonymousUser.new
@users[:member] = Factory.create(:user)
CurrentUser.user = @users[:member]
CurrentUser.ip_addr = "127.0.0.1"
@users[:banned] = Factory.create(:banned_user)
@users[:priv] = Factory.create(:privileged_user)
@users[:contrib] = Factory.create(:contributor_user)
@users[:janitor] = Factory.create(:janitor_user)
@users[:mod] = Factory.create(:moderator_user)
@users[:admin] = Factory.create(:admin_user)
end
teardown do
@users = nil
CurrentUser.user = nil
CurrentUser.ip_addr = nil
end
context "new action" do
should "render" do
get :new, {}, {:user_id => @users[:member]}
assert_response :success
end
end
context "create action" do
should "create a post" do
post :create, {:post => {:source => "", :file => upload_jpeg("#{Rails.root}/test/files/test.jpg"), :tag_string => "hoge", :rating => "s"}}, {:user_id => @users[:member].id}
p = Post.last
assert_equal("hoge", p.tag_string)
assert_equal("jpg", p.file_ext)
assert_equal("s", p.rating)
assert_equal("uploader:#{@users[:member].name}", p.uploader_string)
assert_equal(true, File.exists?(p.file_path))
assert_equal(true, File.exists?(p.preview_path))
end
end
context "update action" do
setup do
@p1 = Factory.create(:post, :tag_string => "hoge")
end
should "update a post" do
put :update, {:post => {:tags => "moge", :rating => "Explicit"}, :id => @p1.id}, {:user_id => @users[:member].id}
@p1.reload
assert_equal("moge", p1.cached_tags)
assert_equal("e", p1.rating)
assert_equal(2, p1.tag_history.size)
post :update, {:post => {:rating => "Safe"}, :id => p1.id}, {:user_id => 3}
assert_equal(3, p1.tag_history.size)
p1.update_attribute(:is_rating_locked, true)
post :update, {:post => {:rating => "Questionable"}, :id => p1.id}, {:user_id => 3}
p1.reload
assert_equal("s", p1.rating)
end
end
should "update a post" do
end
should "list posts" do
get :index, {}, {:user_id => 3}
assert_response :success
get :index, {:tags => "tag1"}, {:user_id => 3}
assert_response :success
get :index, {:format => "json"}, {:user_id => 3}
assert_response :success
get :index, {:format => "xml"}, {:user_id => 3}
assert_response :success
get :index, {:tags => "-tag1"}, {:user_id => 3}
assert_response :success
end
should "list posts through an atom feed" do
get :atom, {}, {:user_id => 3}
assert_response :success
get :atom, {:tags => "tag1"}, {:user_id => 3}
assert_response :success
end
should "display a post" do
get :show, {:id => 1}, {:user_id => 3}
assert_response :success
end
end
def test_popular
get :popular_by_day, {}, {:user_id => 3}
assert_response :success
end
end