aboutsummaryrefslogblamecommitdiffstats
path: root/vendor/extensions/gallery_links/spec/features/refinery/gallery_links/admin/gallery_links_spec.rb
blob: f49e6008064d3fbd72fd6053a4347274a8685f89 (plain) (tree)




































































































                                                                                                            
# encoding: utf-8
require "spec_helper"

describe Refinery do
  describe "GalleryLinks" do
    describe "Admin" do
      describe "gallery_links" do
        refinery_login_with :refinery_user

        describe "gallery_links list" do
          before do
            FactoryGirl.create(:gallery_link, :title => "UniqueTitleOne")
            FactoryGirl.create(:gallery_link, :title => "UniqueTitleTwo")
          end

          it "shows two items" do
            visit refinery.gallery_links_admin_gallery_links_path
            page.should have_content("UniqueTitleOne")
            page.should have_content("UniqueTitleTwo")
          end
        end

        describe "create" do
          before do
            visit refinery.gallery_links_admin_gallery_links_path

            click_link "Add New Gallery Link"
          end

          context "valid data" do
            it "should succeed" do
              fill_in "Title", :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::GalleryLinks::GalleryLink.count.should == 1
            end
          end

          context "invalid data" do
            it "should fail" do
              click_button "Save"

              page.should have_content("Title can't be blank")
              Refinery::GalleryLinks::GalleryLink.count.should == 0
            end
          end

          context "duplicate" do
            before { FactoryGirl.create(:gallery_link, :title => "UniqueTitle") }

            it "should fail" do
              visit refinery.gallery_links_admin_gallery_links_path

              click_link "Add New Gallery Link"

              fill_in "Title", :with => "UniqueTitle"
              click_button "Save"

              page.should have_content("There were problems")
              Refinery::GalleryLinks::GalleryLink.count.should == 1
            end
          end

        end

        describe "edit" do
          before { FactoryGirl.create(:gallery_link, :title => "A title") }

          it "should succeed" do
            visit refinery.gallery_links_admin_gallery_links_path

            within ".actions" do
              click_link "Edit this gallery link"
            end

            fill_in "Title", :with => "A different title"
            click_button "Save"

            page.should have_content("'A different title' was successfully updated.")
            page.should have_no_content("A title")
          end
        end

        describe "destroy" do
          before { FactoryGirl.create(:gallery_link, :title => "UniqueTitleOne") }

          it "should succeed" do
            visit refinery.gallery_links_admin_gallery_links_path

            click_link "Remove this gallery link forever"

            page.should have_content("'UniqueTitleOne' was successfully removed.")
            Refinery::GalleryLinks::GalleryLink.count.should == 0
          end
        end

      end
    end
  end
end