aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/extensions/gallery_links/spec/features/refinery/gallery_links/admin/gallery_links_spec.rb
blob: f49e6008064d3fbd72fd6053a4347274a8685f89 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# 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