diff --git a/app/views/post_appeals/index.html.erb b/app/views/post_appeals/index.html.erb
new file mode 100644
index 000000000..ddf205a67
--- /dev/null
+++ b/app/views/post_appeals/index.html.erb
@@ -0,0 +1,22 @@
+
+
+
+
+
+ | Post |
+ Creator |
+ Reason |
+
+
+
+ <% @post_appeals.each do |post_appeal| %>
+
+ | <%= PostPresenter.preview(post_appeal.post) %> |
+ <%= link_to post_appeal.creator.name, user_path(post_appeal.creator) %> |
+ <%= format_text post_appeal.reason %> |
+
+ <% end %>
+
+
+
+
\ No newline at end of file
diff --git a/test/functional/post_appeals_controller_test.rb b/test/functional/post_appeals_controller_test.rb
new file mode 100644
index 000000000..0c151b613
--- /dev/null
+++ b/test/functional/post_appeals_controller_test.rb
@@ -0,0 +1,56 @@
+require 'test_helper'
+
+class PostAppealsControllerTest < ActionController::TestCase
+ context "The post appeals 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 "new action" do
+ should "render" do
+ get :new, {}, {:user_id => @user.id}
+ assert_response :success
+ end
+ end
+
+ context "index action" do
+ setup do
+ @post = Factory.create(:post, :is_deleted => true)
+ @post_appeal = Factory.create(:post_appeal, :post => @post)
+ end
+
+ should "render" do
+ get :index, {}, {:user_id => @user.id}
+ assert_response :success
+ end
+
+ context "with search parameters" do
+ should "render" do
+ get :index, {:search => {:post_id_equals => @post_appeal.post_id}}, {:user_id => @user.id}
+ assert_response :success
+ end
+ end
+ end
+
+ context "create action" do
+ setup do
+ @post = Factory.create(:post, :is_deleted => true)
+ end
+
+ should "create a new appeal" do
+ assert_difference("PostAppeal.count", 1) do
+ post :create, {:format => "js", :post_appeal => {:post_id => @post.id, :reason => "xxx"}}, {:user_id => @user.id}
+ assert_not_nil(assigns(:post_appeal))
+ assert_equal([], assigns(:post_appeal).errors.full_messages)
+ end
+ end
+ end
+ end
+end