Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
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
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)")

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 commented Dec 22, 2010

Good to know. Thanks!

amitk commented Aug 3, 2011

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
after(:all) do
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"

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

Amit Kulkarni


matschaffer commented Aug 5, 2011

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

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