Skip to content
Extraits de code Groupes Projets
publishing_cuke_helpers.rb 3,44 ko
Newer Older
  • Learn to ignore specific revisions
  • Maxwell Salzberg's avatar
    Maxwell Salzberg a validé
    module PublishingCukeHelpers
    
      def write_in_publisher(txt)
    
        fill_in "status_message_text", with: txt
    
      def append_to_publisher(txt)
        status_message_text = find("#status_message_text").value
    
        fill_in id: "status_message_text", with: "#{status_message_text} #{txt}"
        # trigger JavaScript event listeners
        find("#status_message_text").native.send_key(:end)
    
      def upload_file_with_publisher(path)
    
        page.execute_script(%q{$("input[name='qqfile']").css("opacity", '1');})
    
        with_scope("#publisher_textarea_wrapper") do
    
          attach_file("qqfile", Rails.root.join(path).to_s)
    
          # wait for the image to be ready
    
          page.assert_selector(".publisher_photo.loading", count: 0)
        end
      end
    
    
    Maxwell Salzberg's avatar
    Maxwell Salzberg a validé
      def make_post(text)
    
        write_in_publisher(text)
        submit_publisher
      end
    
      def submit_publisher
    
        txt = find("#publisher #status_message_text").value
    
    Augier's avatar
    Augier a validé
        find("#publisher .btn-primary").click
    
        # wait for the publisher to be closed
        expect(find("#publisher")["class"]).to include("closed")
    
        # wait for the content to appear
    
    Augier's avatar
    Augier a validé
        expect(find("#main_stream")).to have_content(txt)
    
    Dennis Collinson's avatar
    Dennis Collinson a validé
      end
    
      def click_and_post(text)
        click_publisher
        make_post(text)
    
    Maxwell Salzberg's avatar
    Maxwell Salzberg a validé
      end
    
      def click_publisher
    
        find("#status_message_text").click
    
        expect(find("#publisher")).to have_css(".publisher-textarea-wrapper.active")
    
      def publisher_submittable?
    
        submit_btn = find("#publisher button#submit")
    
        !submit_btn[:disabled]
      end
    
    
      def expand_first_post
    
        within(".stream-element", match: :first) do
    
    Jonne Haß's avatar
    Jonne Haß a validé
          find(".expander").click
    
          expect(page).to have_no_css(".expander")
    
    Jonne Haß's avatar
    Jonne Haß a validé
        end
    
      end
    
      def first_post_collapsed?
    
        expect(find(".stream-element .collapsible", match: :first)).to have_css(".expander")
        expect(page).to have_css(".stream-element .collapsible.collapsed", match: :first)
    
      end
    
      def first_post_expanded?
    
        expect(page).to have_no_css(".stream-element .expander", match: :first)
        expect(page).to have_no_css(".stream-element .collapsible.collapsed", match: :first)
        expect(page).to have_css(".stream-element .collapsible.opened", match: :first)
    
    Maxwell Salzberg's avatar
    Maxwell Salzberg a validé
      def first_post_text
    
        find(".stream-element .post-content", match: :first).text
    
      def frame_numbers_content(position)
    
        find(".stream-frame:nth-child(#{position}) .content")
    
      end
    
      def find_frame_by_text(text)
    
        find(".stream-frame:contains('#{text}')")
    
      def stream_element_numbers_content(position)
    
        find(".stream-element:nth-child(#{position}) .post-content")
    
    Maxwell Salzberg's avatar
    Maxwell Salzberg a validé
      end
    
      def find_post_by_text(text)
    
        expect(page).to have_text(text)
    
        find(".stream-element", text: text)
    
      def within_post(post_text)
        within find_post_by_text(post_text) do
          yield
        end
      end
    
      def like_stream_post(post_text)
    
    Benjamin Neff's avatar
    Benjamin Neff a validé
          action = find(:css, "a.like").text
          find(:css, "a.like").click
          expect(find(:css, "a.like")).not_to have_text(action)
    
      def like_show_page_post
        within("#single-post-actions") do
          find(:css, 'a.like').click
    
      def comment_on_show_page(comment_text)
    
        within("#single-post-interactions") do
          make_comment(comment_text)
    
        end
      end
    
      def make_comment(text, elem="text")
        fill_in elem, :with => text
    
    Jonne Haß's avatar
    Jonne Haß a validé
        click_button "Comment"
    
      def focus_comment_box(elem="a.focus_comment_textarea")
        find(elem).click
    
    Maxwell Salzberg's avatar
    Maxwell Salzberg a validé
      def assert_nsfw(text)
        post = find_post_by_text(text)
    
        expect(post.find(".nsfw-shield")).to be_present
    
    World(PublishingCukeHelpers)