diff --git a/app/controllers/post_appeals_controller_test.rb b/app/controllers/post_appeals_controller_test.rb
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/views/post_flags/index.html.erb b/app/views/post_flags/index.html.erb
new file mode 100644
index 000000000..83d2ae98a
--- /dev/null
+++ b/app/views/post_flags/index.html.erb
@@ -0,0 +1,22 @@
+
+
+
+
+
+ | Post |
+ Creator |
+ Reason |
+
+
+
+ <% @post_flags.each do |post_flag| %>
+
+ | <%= PostPresenter.preview(post_flag.post) %> |
+ <%= link_to post_flag.creator.name, user_path(post_flag.creator) %> |
+ <%= format_text post_flag.reason %> |
+
+ <% end %>
+
+
+
+
\ No newline at end of file
diff --git a/test/factories/post_appeal.rb b/test/factories/post_appeal.rb
new file mode 100644
index 000000000..6e1465a2f
--- /dev/null
+++ b/test/factories/post_appeal.rb
@@ -0,0 +1,3 @@
+Factory.define(:post_appeal) do |f|
+ f.reason "xxx"
+end
diff --git a/test/factories/post_flag.rb b/test/factories/post_flag.rb
new file mode 100644
index 000000000..160b62df8
--- /dev/null
+++ b/test/factories/post_flag.rb
@@ -0,0 +1,3 @@
+Factory.define(:post_flag) do |f|
+ f.reason "xxx"
+end
\ No newline at end of file
diff --git a/test/functional/post_flags_controller_test.rb b/test/functional/post_flags_controller_test.rb
new file mode 100644
index 000000000..2165e7122
--- /dev/null
+++ b/test/functional/post_flags_controller_test.rb
@@ -0,0 +1,56 @@
+require 'test_helper'
+
+class PostFlagsControllerTest < ActionController::TestCase
+ context "The post flags 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)
+ @post_flag = Factory.create(:post_flag, :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_flag.post_id}}, {:user_id => @user.id}
+ assert_response :success
+ end
+ end
+ end
+
+ context "create action" do
+ setup do
+ @post = Factory.create(:post)
+ end
+
+ should "create a new flag" do
+ assert_difference("PostFlag.count", 1) do
+ post :create, {:format => "js", :post_flag => {:post_id => @post.id, :reason => "xxx"}}, {:user_id => @user.id}
+ assert_not_nil(assigns(:post_flag))
+ assert_equal([], assigns(:post_flag).errors.full_messages)
+ end
+ end
+ end
+ end
+end