require 'spec_helper_integration' feature 'Adding applications' do context 'in application form' do background do visit '/oauth/applications/new' end scenario 'adding a valid app' do fill_in 'application_name', with: 'My Application' fill_in 'application_redirect_uri', with: 'http://example.com' click_button 'Submit' i_should_see 'Application created' i_should_see 'My Application' end scenario 'adding invalid app' do click_button 'Submit' i_should_see 'Whoops! Check your form for possible errors' end end end feature 'Listing applications' do background do FactoryGirl.create :application, name: 'Oauth Dude' FactoryGirl.create :application, name: 'Awesome App' end scenario 'application list' do visit '/oauth/applications' i_should_see 'Awesome App' i_should_see 'Oauth Dude' end end feature 'Show application' do let :app do FactoryGirl.create :application, name: 'Just another oauth app' end scenario 'visiting application page' do visit "/oauth/applications/#{app.id}" i_should_see 'Just another oauth app' end end feature 'Edit application' do let :app do FactoryGirl.create :application, name: 'OMG my app' end background do visit "/oauth/applications/#{app.id}/edit" end scenario 'updating a valid app' do fill_in :name, with: 'Serious app' click_button 'Submit' i_should_see 'Application updated' i_should_see 'Serious app' i_should_not_see 'OMG my app' end scenario 'updating an invalid app' do fill_in :name, with: '' click_button 'Submit' i_should_see 'Whoops! Check your form for possible errors' end end feature 'Remove application' do background do @app = FactoryGirl.create :application end scenario 'deleting an application from list' do visit '/oauth/applications' i_should_see @app.name within(:css, "tr#application_#{@app.id}") do click_button 'Destroy' end i_should_see 'Application deleted' i_should_not_see @app.name end scenario 'deleting an application from show' do visit "/oauth/applications/#{@app.id}" click_button 'Destroy' i_should_see 'Application deleted' end end