aboutsummaryrefslogtreecommitdiffstats
path: root/spec/requests/refinery/banners/admin/banners_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/refinery/banners/admin/banners_spec.rb')
-rw-r--r--spec/requests/refinery/banners/admin/banners_spec.rb101
1 files changed, 101 insertions, 0 deletions
diff --git a/spec/requests/refinery/banners/admin/banners_spec.rb b/spec/requests/refinery/banners/admin/banners_spec.rb
new file mode 100644
index 0000000..2ffb5bd
--- /dev/null
+++ b/spec/requests/refinery/banners/admin/banners_spec.rb
@@ -0,0 +1,101 @@
+# encoding: utf-8
+require "spec_helper"
+
+describe Refinery do
+ describe "Banners" do
+ describe "Admin" do
+ describe "banners" do
+ login_refinery_user
+
+ describe "banners list" do
+ before(:each) do
+ FactoryGirl.create(:banner, :name => "UniqueTitleOne")
+ FactoryGirl.create(:banner, :name => "UniqueTitleTwo")
+ end
+
+ it "shows two items" do
+ visit refinery.banners_admin_banners_path
+ page.should have_content("UniqueTitleOne")
+ page.should have_content("UniqueTitleTwo")
+ end
+ end
+
+ describe "create" do
+ before(:each) do
+ visit refinery.banners_admin_banners_path
+
+ click_link "Add New Banner"
+ end
+
+ context "valid data" do
+ it "should succeed" do
+ fill_in "Name", :with => "This is a test of the first string field"
+ click_button "Save"
+
+ page.should have_content("'This is a test of the first string field' was successfully added.")
+ Refinery::Banners::Banner.count.should == 1
+ end
+ end
+
+ context "invalid data" do
+ it "should fail" do
+ click_button "Save"
+
+ page.should have_content("Name can't be blank")
+ Refinery::Banners::Banner.count.should == 0
+ end
+ end
+
+ context "duplicate" do
+ before(:each) { FactoryGirl.create(:banner, :name => "UniqueTitle") }
+
+ it "should fail" do
+ visit refinery.banners_admin_banners_path
+
+ click_link "Add New Banner"
+
+ fill_in "Name", :with => "UniqueTitle"
+ click_button "Save"
+
+ page.should have_content("There were problems")
+ Refinery::Banners::Banner.count.should == 1
+ end
+ end
+
+ end
+
+ describe "edit" do
+ before(:each) { FactoryGirl.create(:banner, :name => "A name") }
+
+ it "should succeed" do
+ visit refinery.banners_admin_banners_path
+
+ within ".actions" do
+ click_link "Edit this banner"
+ end
+
+ fill_in "Name", :with => "A different name"
+ click_button "Save"
+
+ page.should have_content("'A different name' was successfully updated.")
+ page.should have_no_content("A name")
+ end
+ end
+
+ describe "destroy" do
+ before(:each) { FactoryGirl.create(:banner, :name => "UniqueTitleOne") }
+
+ it "should succeed" do
+ visit refinery.banners_admin_banners_path
+
+ click_link "Remove this banner forever"
+
+ page.should have_content("'UniqueTitleOne' was successfully removed.")
+ Refinery::Banners::Banner.count.should == 0
+ end
+ end
+
+ end
+ end
+ end
+end