From 35933dec9a03beaa408199b4729ec4fc4629ee26 Mon Sep 17 00:00:00 2001 From: David Gil Date: Fri, 18 Sep 2015 01:26:25 +0200 Subject: [PATCH] adds a test for ie alert, faking browser and button click --- spec/features/home_spec.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/spec/features/home_spec.rb b/spec/features/home_spec.rb index 2c99a7083..0764b353e 100644 --- a/spec/features/home_spec.rb +++ b/spec/features/home_spec.rb @@ -19,4 +19,31 @@ feature "Home" do end end + feature 'IE alert' do + scenario 'IE visitors are presented with an alert until they close it', :js do + page.driver.headers = { "User-Agent" => "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)" } + + visit root_path + expect(page).to have_xpath(ie_alert_box_xpath, visible: false) + expect(page.driver.cookies['ie_alert_closed']).to be_nil + + # faking close button, since a normal find and click + # will not work as the element is inside a HTML conditional comment + page.driver.set_cookie 'ie_alert_closed', 'true' + + visit root_path + expect(page).not_to have_xpath(ie_alert_box_xpath, visible: false) + expect(page.driver.cookies["ie_alert_closed"].value).to eq('true') + end + + scenario 'non-IE visitors are not bothered with IE alerts', :js do + visit root_path + expect(page).not_to have_xpath(ie_alert_box_xpath, visible: false) + expect(page.driver.cookies['ie_alert_closed']).to be_nil + end + + def ie_alert_box_xpath + "/html/body/div[@class='wrapper']/comment()[contains(.,'ie-alert-box')]" + end + end end