Skip to content

Instantly share code, notes, and snippets.

@matschaffer
Created December 3, 2010 21:48
Show Gist options
  • Save matschaffer/727614 to your computer and use it in GitHub Desktop.
Save matschaffer/727614 to your computer and use it in GitHub Desktop.
@javascript
Scenario: confiming when saving inactive
Given I expect to click "OK" on a confirmation box saying "Are you sure?"
When I press "Save"
Then the confirmation box should have been displayed
And I should see "TV" in the "Campaign Keywords" section
Given /^I expect to click "([^"]*)" on a confirmation box saying "([^"]*)"$/ do |option, message|
retval = (option == "OK") ? "true" : "false"
page.evaluate_script("window.confirm = function (msg) {
$.cookie('confirm_message', msg)
return #{retval}
}")
@expected_message = message
end
Then /^the confirmation box should have been displayed$/ do
page.evaluate_script("$.cookie('confirm_message')").should_not be_nil
page.evaluate_script("$.cookie('confirm_message')").should eq(@expected_message)
page.evaluate_script("$.cookie('confirm_message', null)")
end
@msolli
Copy link

msolli commented Dec 22, 2010

Nice! I had to change line 5 to:

$.cookie('confirm_message', msg, {path: '/'})

Otherwise the cookie couldn't be read by a script on the home page when it was set by /articles/new (for instance).

@matschaffer
Copy link
Author

Good to know. Thanks!

@amitk
Copy link

amitk commented Aug 3, 2011

Hi,
Similar to above my scenario is as follows:
Scenario: When i click update button An alert box appears which contains "OK" and "Cancel" buttons.
Then Click on "Ok" then new form appears.

I am writing request specs i.e. using rspec and capybara
Following is my code :
context "update" do
before(:all) do
Capybara.current_driver = :selenium
end
after(:all) do
Capybara.use_default_driver
end
it "update user to trainer" do
click_button('Upgrade') #Here after clicking on the "update" button alert box will appear
(retval = "Ok") ? "true" : "false"
page.evaluate_script("window.confirm = function (msg) {
$.cookie('confirm_message', msg)
return #{retval}
}")
p retval #Here i am getting value as "OK"
save_and_open_page
end

Now here no error is displayed but the expected page is also not displayed.I do not know whether actual it is hitting OK button or not.
On the last line i.e. save_and_open_page,blank page appears.
Please let me know if i am missing something

Thanks,
Amit Kulkarni

@matschaffer
Copy link
Author

you have (retval = "Ok") rather than (retval == "Ok") which is likely the problem

@amitk
Copy link

amitk commented Aug 9, 2011

Thanks a lot.Will try this out and let you know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment