Skip to content

Instantly share code, notes, and snippets.

@jtreanor
Last active January 11, 2017 14:23
Show Gist options
  • Save jtreanor/ce7a8c3c102526688af071764132188c to your computer and use it in GitHub Desktop.
Save jtreanor/ce7a8c3c102526688af071764132188c to your computer and use it in GitHub Desktop.
Calabash performance: 0.20.3 vs 0.20.4
➜ CalSmokeApp git:(BenchmarkQuery-0.20.3) bundle exec cucumber -t ~@clear_text
Using the default, simulator and common profiles...
@alerts
Feature: Alerts
In order to demonstrate interactions with alerts
As a Calabash maintainer
I want some Scenarios that show Calabash working with alerts
INFO: query 'tabBarButton' took 718.1481709994841 milliseconds
INFO: query '* marked:'special page'' took 1144.5110730128363 milliseconds
INFO: query '* marked:'special page'' took 930.7925750035793 milliseconds
# These are alerts that are presented by _your_ application using:
#
# UIAlertView *alert = [[UIAlertView alloc] ...];
# [alert show];
#
# These are _not_ alerts generated by the OS on behalf of your
# app. Such alerts are also known as the "Privacy alerts". You
# can read more about interacting with UIAlerts presented by the
# OS here:
#
# https://github.com/calabash/calabash-ios/wiki/Managing-Privacy-Alerts%3A--Location-Services%2C-APNS%2C-Contacts
Background: Navigate to the special tab # features/alerts.feature:19
Given I see the special tab # features/step_definitions/shared_steps.rb:1
INFO: query 'view marked:'show alert'' took 1139.6261540066916 milliseconds
@animations
Scenario: Touch OK button on alert # features/alerts.feature:23
When I touch the show alert button # features/step_definitions/alerts_steps.rb:127
INFO: query 'view:'_UIAlertControllerView'' took 937.1540279826149 milliseconds
Then I see an alert # features/step_definitions/alerts_steps.rb:132
INFO: query 'view:'_UIAlertControllerView' descendant label' took 726.2912910082377 milliseconds
Then I see the "Smoke Test!" alert # features/step_definitions/alerts_steps.rb:136
And I wait for all animations to stop # features/step_definitions/animations_steps.rb:2
INFO: query 'view:'_UIAlertControllerView'' took 521.2389829976019 milliseconds
INFO: query 'view:'_UIAlertControllerView'' took 1147.347232006723 milliseconds
And I can dismiss the alert with the OK button # features/step_definitions/alerts_steps.rb:140
INFO: query 'tabBarButton' took 1043.9886059903074 milliseconds
INFO: query '* marked:'special page'' took 625.7577420037705 milliseconds
INFO: query '* marked:'special page'' took 934.2647919838782 milliseconds
INFO: query 'view marked:'show alert'' took 1034.7052750003058 milliseconds
Scenario: Verify the alert title, message, and buttons # features/alerts.feature:30
When I touch the show alert button # features/step_definitions/alerts_steps.rb:127
INFO: query 'view:'_UIAlertControllerView'' took 1559.9389329727273 milliseconds
Then I see an alert # features/step_definitions/alerts_steps.rb:132
INFO: query 'view:'_UIAlertControllerView'' took 936.1025670077652 milliseconds
INFO: query 'view:'_UIAlertControllerActionView'' took 724.1478840005584 milliseconds
INFO: query 'view:'_UIAlertControllerView'' took 1139.7221920196898 milliseconds
INFO: query 'view:'_UIAlertControllerView' descendant label' took 1243.4956619981676 milliseconds
And the title of the alert is "Smoke Test!" # features/step_definitions/alerts_steps.rb:146
INFO: query 'view:'_UIAlertControllerView'' took 1241.7393750220072 milliseconds
INFO: query 'view:'_UIAlertControllerActionView'' took 936.689830996329 milliseconds
INFO: query 'view:'_UIAlertControllerView'' took 935.4019760212395 milliseconds
INFO: query 'view:'_UIAlertControllerView' descendant label' took 828.9755499863531 milliseconds
And the message of the alert is "Another day, another iOS alert" # features/step_definitions/alerts_steps.rb:150
INFO: query 'view:'_UIAlertControllerView'' took 927.9266170051415 milliseconds
INFO: query 'view:'_UIAlertControllerActionView'' took 627.3561019916087 milliseconds
And the left hand button is "Cancel" # features/step_definitions/alerts_steps.rb:154
INFO: query 'view:'_UIAlertControllerView'' took 1028.2452410028782 milliseconds
INFO: query 'view:'_UIAlertControllerActionView'' took 1035.7206119806506 milliseconds
And the right hand button is "OK" # features/step_definitions/alerts_steps.rb:154
INFO: query 'view:'_UIAlertControllerView'' took 68.34996200632304 milliseconds
INFO: query 'view:'_UIAlertControllerView'' took 67.64670100528747 milliseconds
And I can dismiss the alert with the OK button # features/step_definitions/alerts_steps.rb:140
@animations
Feature: Animations
In order to demonstrate that Calabash works when there are animations
As a Calabash maintainer
I want some Scenarios with views that animate
INFO: query 'tabBarButton' took 63.17561201285571 milliseconds
INFO: query '* marked:'special page'' took 67.0998290006537 milliseconds
INFO: query '* marked:'special page'' took 65.93308699666522 milliseconds
Background: Navigate to the special tab # features/animations.feature:7
Given I see the special tab # features/step_definitions/shared_steps.rb:1
INFO: query 'view marked:'animated view'' took 65.07921000593342 milliseconds
@backdoor
Scenario: Start an animation and wait for it to finish # features/animations.feature:11
And I have started an animation that lasts 4 seconds # features/step_definitions/animations_steps.rb:12
Then I can wait for the animation to stop # features/step_definitions/animations_steps.rb:23
INFO: query 'tabBarButton' took 64.95111202821136 milliseconds
INFO: query '* marked:'special page'' took 64.03767300071195 milliseconds
INFO: query '* marked:'special page'' took 63.93381700036116 milliseconds
@network_indicator @backdoor
Scenario: Start the network indicator and wait for it to finish # features/animations.feature:17
And I start the network indicator for 4 seconds # features/step_definitions/animations_steps.rb:31
Then I can wait for the indicator to stop # features/step_definitions/animations_steps.rb:36
INFO: query 'tabBarButton' took 63.390948984306306 milliseconds
INFO: query '* marked:'special page'' took 64.34062198968604 milliseconds
INFO: query '* marked:'special page'' took 64.22693000058644 milliseconds
Scenario: Pass an unknown condition to the condition route # features/animations.feature:21
When I pass an unknown condition to wait_for_condition # features/step_definitions/animations_steps.rb:44
INFO: query '*' took 80.81856899661943 milliseconds
Then the app should not crash # features/step_definitions/animations_steps.rb:62
And an error should be raised # features/step_definitions/animations_steps.rb:66
INFO: query 'tabBarButton' took 63.54996099253185 milliseconds
INFO: query '* marked:'special page'' took 65.52795201423578 milliseconds
INFO: query '* marked:'special page'' took 63.468020991422236 milliseconds
# It is impossible to pass a nil query. The client will substitute a '*'
Scenario: Call wait_for_animation with a nil query # features/animations.feature:27
When I pass an empty query to wait_for_none_animating # features/step_definitions/animations_steps.rb:53
INFO: query '*' took 84.52779799699783 milliseconds
Then the app should not crash # features/step_definitions/animations_steps.rb:62
And an error should be raised # features/step_definitions/animations_steps.rb:66
@backdoor
Feature: Backdoors
In order make UI testing faster and easier
As a tester
I want a way to get my app into a good shape for testing
and to get some state from my app at runtime
INFO: query 'tabBarButton' took 63.576976011972874 milliseconds
Background: Launch the app # features/backdoor.feature:8
Given the app has launched # features/step_definitions/shared_steps.rb:43
@unhandled_structs
Scenario: Struct return type # features/backdoor.feature:12
When I call backdoor on a method that returns a CGSize # features/step_definitions/backdoor_steps.rb:2
Then I see that CGSize is not fully supported # features/step_definitions/backdoor_steps.rb:6
When I call backdoor on a method that returns LPSmokeAlarm struct # features/step_definitions/backdoor_steps.rb:10
Then I see that arbitrary structs are not fully supported # features/step_definitions/backdoor_steps.rb:14
INFO: query 'tabBarButton' took 63.73755499953404 milliseconds
# ☀ <== * ; Gherkin can not handle * in step names.
# For example, void\* does not work - * is not escaped
@unhandle_arguments
Scenario: Unhandled arguments # features/backdoor.feature:21
Then void☀ arguments are not handled # features/step_definitions/backdoor_steps.rb:18
And primitive pointer arguments like float☀ and int☀ are not handled # features/step_definitions/backdoor_steps.rb:22
And NSError☀☀ arguments are not handled # features/step_definitions/backdoor_steps.rb:26
And primitive array arguments like int[] are not handled # features/step_definitions/backdoor_steps.rb:30
And arbitrary struct arguments are not handled # features/step_definitions/backdoor_steps.rb:34
And CGSize arguments are not handled # features/step_definitions/backdoor_steps.rb:38
INFO: query 'tabBarButton' took 62.5308720045723 milliseconds
Scenario: Backdoor selector is unknown # features/backdoor.feature:29
When I call backdoor with an unknown selector # features/step_definitions/backdoor_steps.rb:50
backdoor call failed:
selector => 'unknownSelector:'
arguments => '[""]'
reason => 'The backdoor: 'unknownSelector:' is undefined'
You must define 'unknownSelector:' in your UIApplicationDelegate.
// Example
-(NSString *)unknownSelector:(NSString *)argument {
// do stuff here
return @"a result";
}
// Documentation
http://developer.xamarin.com/guides/testcloud/calabash/working-with/backdoors/#backdoor_in_iOS
Then I should see a helpful error message # features/step_definitions/backdoor_steps.rb:59
INFO: query 'tabBarButton' took 62.09074400248937 milliseconds
@void
Scenario: Void return type # features/backdoor.feature:34
When I call backdoor on a method with a void return type # features/step_definitions/backdoor_steps.rb:63
Then I get back <VOID> # features/step_definitions/backdoor_steps.rb:67
INFO: query 'tabBarButton' took 65.57910700212233 milliseconds
@unknown_encoding
Scenario: Long double retrun type is not supported # features/backdoor.feature:39
When I call backdoor on a method that returns long double # features/step_definitions/backdoor_steps.rb:71
Then I get an unknown encoding exception # features/step_definitions/backdoor_steps.rb:76
INFO: query 'tabBarButton' took 62.65324098058045 milliseconds
@date
Scenario: NSDate is returned as a string # features/backdoor.feature:44
Then backdoors that return NSDate return a ruby string # features/step_definitions/backdoor_steps.rb:82
INFO: query 'tabBarButton' took 63.44589899526909 milliseconds
@self
Scenario: Passing self as an argument # features/backdoor.feature:48
Then I can pass self as an argument using __self__ # features/step_definitions/backdoor_steps.rb:42
INFO: query 'tabBarButton' took 63.20499602588825 milliseconds
@nil
Scenario: Passing nil as an argument # features/backdoor.feature:52
Then I can pass nil as an argument using __nil__ # features/step_definitions/backdoor_steps.rb:46
INFO: query 'tabBarButton' took 65.86239399621263 milliseconds
@primitive
Scenario: Primitive return types # features/backdoor.feature:56
Then I call backdoor on a method that returns BOOL NO # features/step_definitions/backdoor_steps.rb:88
Then I call backdoor on a method that returns BOOL YES # features/step_definitions/backdoor_steps.rb:88
Then I call backdoor on a method that returns an int # features/step_definitions/backdoor_steps.rb:99
Then I call backdoor on a method that returns an unsigned int # features/step_definitions/backdoor_steps.rb:99
Then I call backdoor on a method that returns an NSInteger # features/step_definitions/backdoor_steps.rb:99
Then I call backdoor on a method that returns an NSUInteger # features/step_definitions/backdoor_steps.rb:99
Then I call backdoor on a method that returns a short # features/step_definitions/backdoor_steps.rb:117
Then I call backdoor on a method that returns a unsigned short # features/step_definitions/backdoor_steps.rb:117
Then I call backdoor on a method that returns a float # features/step_definitions/backdoor_steps.rb:129
Then I call backdoor on a method that returns a double # features/step_definitions/backdoor_steps.rb:129
Then I call backdoor on a method that returns a CGFloat # features/step_definitions/backdoor_steps.rb:129
Then I call backdoor on a method that returns a char # features/step_definitions/backdoor_steps.rb:144
Then I call backdoor on a method that returns an unsigned char # features/step_definitions/backdoor_steps.rb:144
Then I call backdoor on a method that returns a c string # features/step_definitions/backdoor_steps.rb:156
Then I call backdoor on a method that returns a const char star # features/step_definitions/backdoor_steps.rb:160
Then I call backdoor on a method that returns a long # features/step_definitions/backdoor_steps.rb:164
Then I call backdoor on a method that returns an unsigned long # features/step_definitions/backdoor_steps.rb:176
Then I call backdoor on a method that returns a long long # features/step_definitions/backdoor_steps.rb:164
Then I call backdoor on a method that returns an unsigned long # features/step_definitions/backdoor_steps.rb:176
Then I call backdoor on a method that returns a CGPoint # features/step_definitions/backdoor_steps.rb:188
Then I call backdoor on a method that returns a CGSize # features/step_definitions/backdoor_steps.rb:2
Then I call backdoor on a method that returns a CGRect # features/step_definitions/backdoor_steps.rb:194
INFO: query 'tabBarButton' took 62.38445098279044 milliseconds
@pointer
Scenario: Pointer return types # features/backdoor.feature:81
Then I call backdoor on a method that returns an NSNumber # features/step_definitions/backdoor_steps.rb:202
Then I call backdoor on a method that returns an NSArray # features/step_definitions/backdoor_steps.rb:206
Then I call backdoor on a method that returns an NSDictionary # features/step_definitions/backdoor_steps.rb:210
Then I call backdoor on a method that returns an NSString # features/step_definitions/backdoor_steps.rb:215
INFO: query 'tabBarButton' took 61.07321698800661 milliseconds
@pointer
Scenario: Methods with pointer arguments # features/backdoor.feature:88
Then I call backdoor on a method with one pointer argument # features/step_definitions/backdoor_steps.rb:219
Then I call backdoor on a method with two pointer arguments # features/step_definitions/backdoor_steps.rb:219
Then I call backdoor on a method with three pointer arguments # features/step_definitions/backdoor_steps.rb:219
INFO: query 'tabBarButton' took 63.4258069912903 milliseconds
@primitive
Scenario: Methods with primative arguments # features/backdoor.feature:94
Then I call backdoor on a method with a BOOL argument # features/step_definitions/backdoor_steps.rb:242
Then I call backdoor on a method with a bool argument # features/step_definitions/backdoor_steps.rb:247
Then I call backdoor on a method with an NSInteger argument # features/step_definitions/backdoor_steps.rb:252
Then I call backdoor on a method with an NSUInteger argument # features/step_definitions/backdoor_steps.rb:252
Then I call backdoor on a method with a short argument # features/step_definitions/backdoor_steps.rb:264
Then I call backdoor on a method with an unsigned short argument # features/step_definitions/backdoor_steps.rb:264
Then I call backdoor on a method with a CGFloat argument # features/step_definitions/backdoor_steps.rb:276
Then I call backdoor on a method with a double argument # features/step_definitions/backdoor_steps.rb:276
Then I call backdoor on a method with a float argument # features/step_definitions/backdoor_steps.rb:276
Then I call backdoor on a method with a char argument # features/step_definitions/backdoor_steps.rb:290
Then I call backdoor on a method with an unsigned char argument # features/step_definitions/backdoor_steps.rb:290
Then I call backdoor on a method with a long argument # features/step_definitions/backdoor_steps.rb:301
Then I call backdoor on a method with a unsigned long argument # features/step_definitions/backdoor_steps.rb:301
Then I call backdoor on a method with a long long argument # features/step_definitions/backdoor_steps.rb:313
Then I call backdoor on a method with a unsigned long long argument # features/step_definitions/backdoor_steps.rb:313
Then I call backdoor on a method with a c string argument # features/step_definitions/backdoor_steps.rb:325
Then I call backdoor on a method with a const char star argument # features/step_definitions/backdoor_steps.rb:329
Then I call backdoor on a method with a CGPoint argument # features/step_definitions/backdoor_steps.rb:334
Then I call backdoor on a method with a CGRect argument # features/step_definitions/backdoor_steps.rb:339
Then I call backdoor on a method with a Class argument # features/step_definitions/backdoor_steps.rb:344
@drag_and_drop
Feature: Drag and Drop
In order to test the Calabash pan API
As a Calabash developer
I want to drag a view onto another view
INFO: query 'tabBarButton' took 62.675406981725246 milliseconds
INFO: query '* marked:'special page'' took 64.5482320105657 milliseconds
INFO: query '* marked:'special page'' took 62.17355199623853 milliseconds
Background: Navigate to the special tab # features/drag_and_drop.feature:7
Given I see the special tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UIImageView marked:'red'' took 61.51296600000933 milliseconds
INFO: query 'UIView marked:'left well'' took 63.51280500530265 milliseconds
INFO: query 'UIImageView marked:'red'' took 64.89795798552223 milliseconds
Scenario: Drag the red box to the left well # features/drag_and_drop.feature:10
When I drag the red box to the left well # features/step_definitions/drag_and_drop_steps.rb:72
INFO: query 'UIView marked:'left well'' took 70.22499601589516 milliseconds
Then the well should change color # features/step_definitions/drag_and_drop_steps.rb:86
INFO: query 'UIImageView marked:'red'' took 61.23192599625327 milliseconds
And the box goes back to its original position # features/step_definitions/drag_and_drop_steps.rb:93
INFO: query 'tabBarButton' took 62.1942309953738 milliseconds
INFO: query '* marked:'special page'' took 63.3842799870763 milliseconds
INFO: query '* marked:'special page'' took 62.309434986673295 milliseconds
INFO: query 'UIImageView marked:'blue'' took 62.38006899366155 milliseconds
INFO: query 'UIView marked:'right well'' took 62.69681197591126 milliseconds
INFO: query 'UIImageView marked:'blue'' took 61.19011898408644 milliseconds
Scenario: Drag the blue box to the right well # features/drag_and_drop.feature:15
When I drag the blue box to the right well # features/step_definitions/drag_and_drop_steps.rb:72
INFO: query 'UIView marked:'right well'' took 64.34295000508428 milliseconds
Then the well should change color # features/step_definitions/drag_and_drop_steps.rb:86
INFO: query 'UIImageView marked:'blue'' took 61.682753992499784 milliseconds
And the box goes back to its original position # features/step_definitions/drag_and_drop_steps.rb:93
INFO: query 'tabBarButton' took 65.11072197463363 milliseconds
INFO: query '* marked:'special page'' took 66.56140301492997 milliseconds
INFO: query '* marked:'special page'' took 62.40456600789912 milliseconds
INFO: query 'UIImageView marked:'green'' took 64.3632450082805 milliseconds
INFO: query 'UIView marked:'left well'' took 63.47293400904164 milliseconds
INFO: query 'UIImageView marked:'green'' took 61.77679399843328 milliseconds
Scenario: Drag the green box to the left well # features/drag_and_drop.feature:20
When I drag the green box to the left well # features/step_definitions/drag_and_drop_steps.rb:72
INFO: query 'UIView marked:'left well'' took 67.20698199933395 milliseconds
Then the well should change color # features/step_definitions/drag_and_drop_steps.rb:86
INFO: query 'UIImageView marked:'green'' took 67.06690898863599 milliseconds
And the box goes back to its original position # features/step_definitions/drag_and_drop_steps.rb:93
@flash
Feature: Flash
In order to explore my app's view heirarchy
As an app tester and develop
I want Calabash to be able to visually indicate which views match a query
INFO: query 'tabBarButton' took 63.785278995055705 milliseconds
INFO: query '* marked:'special page'' took 63.353506004204974 milliseconds
INFO: query '* marked:'special page'' took 62.78574900352396 milliseconds
Background: Navigate to special tab # features/flash.feature:7
Given I see the special tab # features/step_definitions/shared_steps.rb:1
Scenario: Flashing # features/flash.feature:10
Then I can flash the buttons # features/step_definitions/flash_steps.rb:2
And I can flash the labels in the tab bar # features/step_definitions/flash_steps.rb:7
When the flash query matches no views # features/step_definitions/flash_steps.rb:12
Then flash returns an empty array # features/step_definitions/flash_steps.rb:16
@localization @simulator
Feature: Can launch a simulator in German
INFO: query 'tabBarButton' took 937.6440049964003 milliseconds
@german
Scenario: Launch simulator in German and query for text # features/german.feature:6
Given the app has launched # features/step_definitions/shared_steps.rb:43
INFO: query 'tabBarButton' took 1031.1074650089722 milliseconds
INFO: query '* marked:'special page'' took 1144.6092289988883 milliseconds
INFO: query '* marked:'special page'' took 1032.7793089963961 milliseconds
And I see the special tab # features/step_definitions/shared_steps.rb:1
INFO: query '* marked:'localized label'' took 1351.0229219973553 milliseconds
INFO: query '* marked:'localized label'' took 832.6914729841519 milliseconds
Then I see localized text "Beschriften mit lokalisiertem Text" # features/step_definitions/german_steps.rb:2
@screenshot @issue_246
Feature: Screenshot embed in and out of cucumber world
Cucumber RuntimeError Hey!
# undefined method `embed` (NoMethodError) when calling screenshot_and_raise
# https://github.com/calabash/calabash-ios/issues/246
Scenario: screenshots outside of a page # features/issue_246_screenshot_embed.feature:8
When I use screenshot_and_raise in the context of cucumber # features/step_definitions/issue_246_screenshot_steps.rb:34
Then I should get a runtime error # features/step_definitions/issue_246_screenshot_steps.rb:70
NotPOM RuntimeError Hey!
Scenario: screenshots in a page that does not extend IBase # features/issue_246_screenshot_embed.feature:12
When I screenshot_and_raise in a page that does not inherit from IBase # features/step_definitions/issue_246_screenshot_steps.rb:46
Then I should get a runtime error # features/step_definitions/issue_246_screenshot_steps.rb:70
But it should not be a NoMethod error for embed # features/step_definitions/issue_246_screenshot_steps.rb:78
POM RuntimeError Hey!
Scenario: screenshots in a page that does extend IBase # features/issue_246_screenshot_embed.feature:17
When I screenshot_and_raise in a page that does inherit from IBase # features/step_definitions/issue_246_screenshot_steps.rb:58
Then I should get a runtime error # features/step_definitions/issue_246_screenshot_steps.rb:70
But it should not be a NoMethod error for embed # features/step_definitions/issue_246_screenshot_steps.rb:78
@keyboard
Feature: Typing on the Keyboard
In order to enter text like a user
As an app tester
I want Calabash to provide a Keyboard API
INFO: query 'tabBarButton' took 1967.9448599927127 milliseconds
INFO: query '* marked:'controls page'' took 1138.3134339994285 milliseconds
INFO: query '* marked:'controls page'' took 926.1661430064123 milliseconds
Background: Navigate to the controls tab # features/keyboard.feature:7
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UITextField index:0' took 931.6445060248952 milliseconds
INFO: query 'UITextField index:0' took 831.7819949879777 milliseconds
@travis
Scenario: I should be able to type something # features/keyboard.feature:11
Then I type "Hello" # features/step_definitions/keyboard_steps.rb:9
And the first responder text is "Hello" # features/step_definitions/keyboard_steps.rb:30
And I dismiss the keyboard by tapping the keyboard action key # features/step_definitions/keyboard_steps.rb:19
INFO: query 'tabBarButton' took 1037.5438629998825 milliseconds
INFO: query '* marked:'controls page'' took 836.1852439993527 milliseconds
INFO: query '* marked:'controls page'' took 940.881693008123 milliseconds
INFO: query '* marked:'cal text field'' took 936.6731670161244 milliseconds
INFO: query '* marked:'cal text field'' took 832.2457160102203 milliseconds
Scenario: Interacting with non-UITextInput responders # features/keyboard.feature:16
Then I touch the CalTextField # features/step_definitions/keyboard_steps.rb:23
And the first responder text is "CalTextField" # features/step_definitions/keyboard_steps.rb:30
INFO: query '* marked:'cal text field'' took 90.07023798767477 milliseconds
And I can append the text of the CalTextField # features/step_definitions/keyboard_steps.rb:36
And I dismiss the keyboard that is attached to the CalTextField # features/step_definitions/keyboard_steps.rb:52
@resetting @ideviceinstaller @keychain
Feature: iOS Keychain
INFO: query 'tabBarButton' took 66.03522298973985 milliseconds
INFO: query '* marked:'controls page'' took 65.40283001959324 milliseconds
INFO: query '* marked:'controls page'' took 65.92901799012907 milliseconds
# These tests are dependent on each other and must be run in a particular
# order. In general, this is a bad practice, but there are times when it is
# necessary. In this case, we are testing the behavior of resetting an
# app's sandbox and re-installing. The strict ordering is achieved by
# using the 'xx_< Scenario Name >' convention.
#
# When these tests are run on physical devices, the reset will be
# performed by re-installing the app.
#
# The Keychain API will removed in Calabash 2.0. It will be replaced by a
# separate gem and a Calabash plug-in.
#
# These tests require ideviceinstaller. You can install ideviceinstaller
# with brew. We do not maintain the ideviceinstaller, libimobiledevice, or
# homebrew tools. These are third-party software. If you have issues with these
# tools, you are on your own. Please do not report problems with these tools
# on the Calabash channels.
Background: Navigate to the controls page # features/keychain.feature:23
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
# Demonstrate that the keychain API works.
Scenario: 00 I set the keychain item # features/keychain.feature:27
Given that the keychain contains the account password "pa$$w0rd" for "clever_user98" # features/step_definitions/keychain_steps.rb:34
INFO: query 'tabBarButton' took 67.61855600052513 milliseconds
INFO: query '* marked:'controls page'' took 66.06098098563962 milliseconds
INFO: query '* marked:'controls page'' took 66.3415179878939 milliseconds
Scenario: 01 I should see the keychain item exists in the next Scenario # features/keychain.feature:30
Then the keychain should contain the account password "pa$$w0rd" for "clever_user98" # features/step_definitions/keychain_steps.rb:21
When I clear the keychain # features/step_definitions/keychain_steps.rb:13
Then the keychain should be empty because I called clear_keychain # features/step_definitions/keychain_steps.rb:41
INFO: query 'tabBarButton' took 833.5317460005172 milliseconds
INFO: query '* marked:'controls page'' took 614.9020360026043 milliseconds
INFO: query '* marked:'controls page'' took 726.6091470082756 milliseconds
# Demonstrate that resetting the simulator content and settings works using
# the keychain as proxy.
#
# Keychain items persist over app installs and sandbox resets on the
# iOS Simulator and physical devices.
#
# On the simulator, you can reset the simulator contents and settings to
# clear the keychain, but on devices re-installing does not clear the
# keychain. You must call `keychain_clear` after the app is launched.
# See features/support/01_launch.rb to see how this is done in the Before hook.
@reset_device_settings
Scenario: 10 I set the keychain item # features/keychain.feature:46
Given that the keychain contains the account password "pa$$w0rd" for "clever_user98" # features/step_definitions/keychain_steps.rb:34
INFO: query 'tabBarButton' took 929.9407209909987 milliseconds
INFO: query '* marked:'controls page'' took 829.9113480024971 milliseconds
INFO: query '* marked:'controls page'' took 828.2808809890412 milliseconds
Scenario: 11 I should see the keychain item exists because I did not reset the device settings before this Scenario # features/keychain.feature:49
Then the keychain should contain the account password "pa$$w0rd" for "clever_user98" # features/step_definitions/keychain_steps.rb:21
INFO: query 'tabBarButton' took 620.0428459851537 milliseconds
INFO: query '* marked:'controls page'' took 823.9680859842338 milliseconds
INFO: query '* marked:'controls page'' took 1040.9470619924832 milliseconds
@reset_device_settings
Scenario: 12 The keychain should be empty because I reset the device settings before this Scenario # features/keychain.feature:53
Then the keychain should be empty because I reset the device # features/step_definitions/keychain_steps.rb:67
@pan
Feature: Pan
In order to perform swipes
As a developer
I want a Pan API
INFO: query 'tabBarButton' took 724.0919759788085 milliseconds
INFO: query '* marked:'scrolls page'' took 1244.8687819996849 milliseconds
INFO: query '* marked:'scrolls page'' took 827.4551430076826 milliseconds
Background: Navigate to the scrolls page # features/pan.feature:7
Given I see the scrolls tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UITableViewCell marked:'table views row'' took 1134.80992501718 milliseconds
Scenario: Left-to-right screen pan in portrait # features/pan.feature:10
When I touch the table views row # features/step_definitions/scroll_steps.rb:16
INFO: query 'view marked:'table views page'' took 935.9201019979082 milliseconds
Then I see the table views page # features/step_definitions/scroll_steps.rb:26
INFO: query '*' took 1872.4844910029788 milliseconds
When I pan left on the screen # features/step_definitions/pan_steps.rb:1
INFO: query 'view marked:'scrolls page'' took 1037.0151730021462 milliseconds
Then I go back to the Scrolls page # features/step_definitions/pan_steps.rb:17
INFO: query 'tabBarButton' took 1343.8125670072623 milliseconds
INFO: query '* marked:'scrolls page'' took 1550.669863994699 milliseconds
INFO: query '* marked:'scrolls page'' took 929.2792319902219 milliseconds
INFO: query 'UITableViewCell marked:'collection views row'' took 1351.4229980064556 milliseconds
Scenario: Left-to-right screen pan in landscape # features/pan.feature:16
When I touch the collection views row # features/step_definitions/scroll_steps.rb:16
INFO: query 'view marked:'collection views page'' took 1347.2199249954429 milliseconds
Then I see the collection views page # features/step_definitions/scroll_steps.rb:26
And I try to rotate the home button so it is on the right # features/step_definitions/rotation_steps.rb:2
INFO: query '*' took 1877.1264759998303 milliseconds
When I pan left on the screen # features/step_definitions/pan_steps.rb:1
INFO: query 'view marked:'scrolls page'' took 67.48024400440045 milliseconds
Then I go back to the Scrolls page # features/step_definitions/pan_steps.rb:17
@pinch
Feature: Pinch
In order to perform pinches
As a developer
I want a Pinch API
INFO: query 'tabBarButton' took 63.77732800319791 milliseconds
Background: App has launched # features/pinch.feature:7
Given the app has launched # features/step_definitions/shared_steps.rb:43
INFO: query 'tabBarButton' took 64.15421899873763 milliseconds
INFO: query '* marked:'gestures page'' took 74.53507801983505 milliseconds
INFO: query '* marked:'gestures page'' took 72.0524890057277 milliseconds
Scenario: A basic pinch on the box # features/pinch.feature:10
Given I see the gestures tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UITableViewCell marked:'pinching row'' took 74.79767000768334 milliseconds
INFO: query 'view marked:'pinching page'' took 62.298536009620875 milliseconds
And I see the pinching page # features/step_definitions/pinch_steps.rb:1
INFO: query 'UIView id:'box'' took 63.18908499088138 milliseconds
When I pinch in on the box # features/step_definitions/pinch_steps.rb:16
INFO: query 'UIView id:'box'' took 63.29892002395354 milliseconds
Then the box grows # features/step_definitions/pinch_steps.rb:34
When I pinch out on the box # features/step_definitions/pinch_steps.rb:29
INFO: query 'UIView id:'box'' took 71.41023498843424 milliseconds
Then the box shrinks # features/step_definitions/pinch_steps.rb:22
INFO: query 'tabBarButton' took 65.59219697373919 milliseconds
INFO: query 'tabBarButton' took 62.6179660030175 milliseconds
INFO: query '* marked:'scrolls page'' took 65.10896800318733 milliseconds
INFO: query '* marked:'scrolls page'' took 67.3453769995831 milliseconds
@map
Scenario: Full screen pinch on map # features/pinch.feature:19
Given I see the scrolls tab # features/step_definitions/shared_steps.rb:1
INFO: query '* marked:'map views row'' took 68.60000599408522 milliseconds
INFO: query '* marked:'map views row'' took 66.82138598989695 milliseconds
INFO: query '* marked:'map'' took 1377.7965649787802 milliseconds
INFO: query '* marked:'map'' took 82.40677599678747 milliseconds
And I see the map page # features/step_definitions/pinch_steps.rb:41
Then I zoom in on the map by pinching out # features/step_definitions/pinch_steps.rb:54
Then I zoom out on the map by pinching in # features/step_definitions/pinch_steps.rb:60
@rotation
Feature: Rotation
In order test my app in all orientations
As a developer
I want Calabash to be able to rotate my app
INFO: query 'tabBarButton' took 140.3581630147528 milliseconds
INFO: query '* marked:'controls page'' took 65.24080198141746 milliseconds
INFO: query '* marked:'controls page'' took 65.87249500444159 milliseconds
# In order for Calabash to be able to rotate your app,
# your app's view controller must respond to orientation
# changes.
#
# Enumerating the various things you need to do to enable
# rotation for all the support iOS versions is beyond the
# scope of this documentation.
#
# This app supports rotation on at least one view controller.
#
# Rotation is exhaustively tested in the Briar iOS example.
# https://github.com/jmoody/briar-ios-example
Scenario: Controller does not respond to orientation changes # features/rotation.feature:20
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
And I try to rotate the home button so it is on the left # features/step_definitions/rotation_steps.rb:2
Then the orientation should be portrait # features/step_definitions/rotation_steps.rb:6
INFO: query 'tabBarButton' took 64.09557000733912 milliseconds
INFO: query '* marked:'special page'' took 65.24799001635984 milliseconds
INFO: query '* marked:'special page'' took 61.690582981100306 milliseconds
Scenario: Controller does respond to orientation changes # features/rotation.feature:25
Given I see the special tab # features/step_definitions/shared_steps.rb:1
And I try to rotate the home button so it is on the right # features/step_definitions/rotation_steps.rb:2
Then the home button should be on the right # features/step_definitions/rotation_steps.rb:14
@screenshots
Feature: Screenshots
In order to gain insights into my app
As a tester
I want a way to take a screenshot
INFO: query 'tabBarButton' took 63.39245798881166 milliseconds
Background: The app has launched # features/screenshots.feature:7
Given the app has launched # features/step_definitions/shared_steps.rb:43
And I have cleared existing screenshots for this feature # features/step_definitions/screenshot_steps.rb:60
And the scenario-screenshots subdirectory exists # features/step_definitions/screenshot_steps.rb:67
Scenario: Default screenshot behavior # features/screenshots.feature:12
When I take a screenshot with the default screenshot method # features/step_definitions/screenshot_steps.rb:74
Then the screenshot will have a number appended to the name # features/step_definitions/screenshot_steps.rb:79
INFO: query 'tabBarButton' took 63.636990991653875 milliseconds
Scenario: My un-numbered screenshot method # features/screenshots.feature:16
When I take a screenshot with my un-numbered screenshot method # features/step_definitions/screenshot_steps.rb:90
Then the screenshot will not have a number appended to the name # features/step_definitions/screenshot_steps.rb:95
@scroll
Feature: Testing scrolling
In order to scroll on tables, collections, map views, and web views
As a developer
I want a Scroll API
INFO: query 'tabBarButton' took 65.7304489868693 milliseconds
INFO: query '* marked:'scrolls page'' took 89.55478999996558 milliseconds
INFO: query '* marked:'scrolls page'' took 94.3168530066032 milliseconds
INFO: query '* marked:'scrolls page'' took 87.64145398163237 milliseconds
INFO: query '* marked:'scrolls page'' took 90.22358802030794 milliseconds
INFO: query '* marked:'scrolls page'' took 88.2361980038695 milliseconds
INFO: query '* marked:'scrolls page'' took 90.92329299892299 milliseconds
INFO: query '* marked:'scrolls page'' took 87.80978599679656 milliseconds
INFO: query '* marked:'scrolls page'' took 90.22084600292146 milliseconds
INFO: query '* marked:'scrolls page'' took 99.52724300092086 milliseconds
INFO: query '* marked:'scrolls page'' took 101.27549999742769 milliseconds
INFO: query '* marked:'scrolls page'' took 99.94554700097069 milliseconds
INFO: query '* marked:'scrolls page'' took 91.86356599093415 milliseconds
INFO: query '* marked:'scrolls page'' took 87.3905089974869 milliseconds
INFO: query '* marked:'scrolls page'' took 86.72580501297489 milliseconds
INFO: query '* marked:'scrolls page'' took 94.41932701156475 milliseconds
INFO: query '* marked:'scrolls page'' took 96.09301798627712 milliseconds
INFO: query '* marked:'scrolls page'' took 92.16281500994228 milliseconds
INFO: query '* marked:'scrolls page'' took 92.70358199137263 milliseconds
INFO: query '* marked:'scrolls page'' took 96.0774989798665 milliseconds
INFO: query '* marked:'scrolls page'' took 108.18691999884322 milliseconds
INFO: query '* marked:'scrolls page'' took 103.43575300066732 milliseconds
INFO: query '* marked:'scrolls page'' took 102.2913480119314 milliseconds
INFO: query '* marked:'scrolls page'' took 79.84984599170275 milliseconds
INFO: query '* marked:'scrolls page'' took 81.91937700030394 milliseconds
INFO: query '* marked:'scrolls page'' took 64.81584801804274 milliseconds
Background: Navigate to the scrolls tab # features/scroll.feature:7
Given I see the scrolls tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UITableView marked:'table'' took 64.29021499934606 milliseconds
Then I see the scrolling views table # features/step_definitions/scroll_steps.rb:2
INFO: query 'UITableViewCell marked:'collection views row'' took 67.00233201263472 milliseconds
Scenario: Collection views # features/scroll.feature:11
When I touch the collection views row # features/step_definitions/scroll_steps.rb:16
INFO: query 'view marked:'collection views page'' took 85.98488999996334 milliseconds
Then I see the collection views page # features/step_definitions/scroll_steps.rb:26
INFO: query 'UICollectionView marked:'logo gallery'' took 68.91032197745517 milliseconds
Then I scroll the logos collection to the steam icon by mark # features/step_definitions/scroll_steps.rb:32
INFO: query 'UICollectionView marked:'logo gallery'' took 70.5684210115578 milliseconds
Then I scroll the logos collection to the github icon by index # features/step_definitions/scroll_steps.rb:60
INFO: query 'UICollectionView marked:'logo gallery'' took 82.32576301088557 milliseconds
Then I scroll the logos collection to the wordpress icon using a subview mark # features/step_definitions/scroll_steps.rb:74
INFO: query 'UICollectionView marked:'logo gallery'' took 69.14971099467948 milliseconds
INFO: query 'UICollectionViewCell marked:'android'' took 67.29619999532588 milliseconds
INFO: query 'UICollectionViewCell marked:'android'' took 70.99983698572032 milliseconds
INFO: query 'UICollectionViewCell marked:'android'' took 72.01281399466097 milliseconds
INFO: query 'UICollectionViewCell marked:'android'' took 68.4393740084488 milliseconds
Then I scroll up on the logos collection to the android icon # features/step_definitions/scroll_steps.rb:104
INFO: query 'UICollectionView marked:'color gallery'' took 66.99748898972757 milliseconds
Then I scroll the colors collection to the middle of the purple boxes # features/step_definitions/scroll_steps.rb:125
INFO: query 'UICollectionView marked:'color gallery'' took 72.16647299355827 milliseconds
Then I scroll the colors collection to the Wedge Antilles box using a subview mark # features/step_definitions/scroll_steps.rb:88
INFO: query 'tabBarButton' took 70.84307097829878 milliseconds
INFO: query '* marked:'scrolls page'' took 73.98610498057678 milliseconds
INFO: query '* marked:'scrolls page'' took 75.63306301017292 milliseconds
INFO: query '* marked:'scrolls page'' took 80.07587800966576 milliseconds
INFO: query '* marked:'scrolls page'' took 70.37249702261761 milliseconds
INFO: query 'UITableView marked:'table'' took 68.6933460237924 milliseconds
INFO: query 'UITableViewCell marked:'table views row'' took 63.069471972994506 milliseconds
Scenario: Table views # features/scroll.feature:21
When I touch the table views row # features/step_definitions/scroll_steps.rb:16
INFO: query 'view marked:'table views page'' took 71.33684799191542 milliseconds
Then I see the table views page # features/step_definitions/scroll_steps.rb:26
INFO: query 'UITableView marked:'logos'' took 69.35349697596394 milliseconds
Then I scroll the logos table to the steam row by mark # features/step_definitions/scroll_steps.rb:140
INFO: query 'UITableView marked:'logos'' took 90.8387590025086 milliseconds
Then I scroll the logos table to the apple row using a subview mark # features/step_definitions/scroll_steps.rb:46
INFO: query 'UITableView marked:'logos'' took 65.52672400721349 milliseconds
Then I scroll the logos table to the github row by index # features/step_definitions/scroll_steps.rb:154
INFO: query 'UITableView marked:'logos'' took 68.75776301603764 milliseconds
INFO: query 'UITableViewCell marked:'android'' took 66.55897700693458 milliseconds
INFO: query 'UITableViewCell marked:'android'' took 65.22015799419023 milliseconds
INFO: query 'UITableViewCell marked:'android'' took 66.13564098370261 milliseconds
INFO: query 'UITableViewCell marked:'android'' took 63.10812899027951 milliseconds
Then I scroll up on the logos table to the android row # features/step_definitions/scroll_steps.rb:168
INFO: query 'tabBarButton' took 71.45637401845306 milliseconds
INFO: query '* marked:'scrolls page'' took 78.76925301388837 milliseconds
INFO: query '* marked:'scrolls page'' took 71.20241000666283 milliseconds
INFO: query '* marked:'scrolls page'' took 66.31494298926555 milliseconds
INFO: query '* marked:'scrolls page'' took 66.94673898164183 milliseconds
INFO: query 'UITableView marked:'table'' took 61.85793099575676 milliseconds
INFO: query 'UITableViewCell marked:'scroll views row'' took 63.18396999267861 milliseconds
Scenario: Scroll views # features/scroll.feature:29
When I touch the scroll views row # features/step_definitions/scroll_steps.rb:16
INFO: query 'view marked:'scroll views page'' took 65.32164898817427 milliseconds
Then I see the scroll views page # features/step_definitions/scroll_steps.rb:26
INFO: query 'UIScrollView marked:'scroll'' took 67.739825026365 milliseconds
INFO: query 'UIScrollView marked:'scroll'' took 65.01511100213975 milliseconds
INFO: query 'view marked:'cayenne'' took 80.22461898508482 milliseconds
Then I center the cayenne box to the middle # features/step_definitions/scroll_steps.rb:189
INFO: query 'UIScrollView marked:'scroll'' took 98.9287160045933 milliseconds
INFO: query 'view marked:'purple'' took 72.8329150006175 milliseconds
INFO: query 'view marked:'purple'' took 64.76700800703838 milliseconds
INFO: query 'view marked:'purple'' took 65.75180299114436 milliseconds
INFO: query 'view marked:'purple'' took 65.95952899078839 milliseconds
Then I scroll up to the purple box # features/step_definitions/scroll_steps.rb:202
INFO: query 'UIScrollView marked:'scroll'' took 63.23517102282494 milliseconds
INFO: query 'view marked:'light blue'' took 59.73278800956905 milliseconds
INFO: query 'view marked:'light blue'' took 63.43848898541182 milliseconds
INFO: query 'view marked:'light blue'' took 62.79857401386835 milliseconds
INFO: query 'view marked:'light blue'' took 74.04021400725469 milliseconds
INFO: query 'view marked:'light blue'' took 65.4885080002714 milliseconds
Then I scroll left to the light blue box # features/step_definitions/scroll_steps.rb:231
INFO: query 'UIScrollView marked:'scroll'' took 68.93700800719671 milliseconds
INFO: query 'UIScrollView marked:'scroll'' took 69.7185309836641 milliseconds
INFO: query 'view marked:'cayenne'' took 62.6953580067493 milliseconds
Then I center the cayenne box to the middle # features/step_definitions/scroll_steps.rb:189
INFO: query 'UIScrollView marked:'scroll'' took 63.483722013188526 milliseconds
INFO: query 'view marked:'gray'' took 60.186860006069764 milliseconds
INFO: query 'view marked:'gray'' took 74.50255000730976 milliseconds
INFO: query 'view marked:'gray'' took 64.92573698051274 milliseconds
Then I scroll down to the gray box # features/step_definitions/scroll_steps.rb:252
INFO: query 'UIScrollView marked:'scroll'' took 61.49704899871722 milliseconds
INFO: query 'view marked:'dark gray'' took 63.52658398100175 milliseconds
INFO: query 'view marked:'dark gray'' took 65.92862200341187 milliseconds
INFO: query 'view marked:'dark gray'' took 64.08309401012957 milliseconds
INFO: query 'view marked:'dark gray'' took 73.10923800105229 milliseconds
INFO: query 'view marked:'dark gray'' took 71.24196900986135 milliseconds
Then I scroll right to the dark gray box # features/step_definitions/scroll_steps.rb:273
INFO: query 'UIScrollView marked:'scroll'' took 73.81849101511762 milliseconds
INFO: query '* marked:'cayenne'' took 71.64712698431686 milliseconds
INFO: query '* marked:'cayenne'' took 62.09321800270118 milliseconds
Then I scroll to the cayenne box by mark # features/step_definitions/scroll_steps.rb:294
INFO: query 'UIScrollView marked:'scroll'' took 61.39119600993581 milliseconds
INFO: query '* marked:'purple'' took 60.75582999619655 milliseconds
INFO: query '* marked:'purple'' took 59.849946992471814 milliseconds
And I scroll to the purple box by mark # features/step_definitions/scroll_steps.rb:294
INFO: query 'UIScrollView marked:'scroll'' took 61.69642100576311 milliseconds
INFO: query '* marked:'gray'' took 64.70835499931127 milliseconds
INFO: query '* marked:'gray'' took 64.10389899974689 milliseconds
And I scroll to the gray box by mark # features/step_definitions/scroll_steps.rb:294
INFO: query 'UIScrollView marked:'scroll'' took 60.22658498841338 milliseconds
INFO: query '* marked:'dark gray'' took 68.3486940106377 milliseconds
INFO: query '* marked:'dark gray'' took 61.48602001485415 milliseconds
And I scroll to the dark gray box by mark # features/step_definitions/scroll_steps.rb:294
@selectors
Feature: Calling Arbitrary Selectors
In order to speed up testing and gain insights about my app
As a developer and tester
Want a way of calling arbitrary selectors on UIViews
INFO: query 'tabBarButton' took 63.78828900051303 milliseconds
INFO: query '* marked:'controls page'' took 63.81943199085072 milliseconds
INFO: query '* marked:'controls page'' took 62.495348014635965 milliseconds
# Calabash can call arbitrary selectors on UIView and UIView subclasses.
#
# The classic example is setting the text of a UITextField.
#
# query("UITextField marked:'username'", [{setText:'launisch'}])
#
# In this case, 'setText' is the Objective-C selector.
#
# Consider this use case. You are testing a UIView with an image view
# and a label. During a test you want to change the image and the caption.
#
# @interface MyView : UIView
#
# @property(...) UIImageView *imageView;
# @property(...) UILabel *caption;
#
# @end
#
# @implementation MyView
#
# - (void) setImageWithURL:(NSString *) url caption:(NSString *) caption {
# UIImage *image = // Fetch the image from URL
# self.imageView.image = image;
# self.label.text = caption;
# }
#
# @end
#
# In the view's Controller or in the Interface Builder, you set the the
# accessibilityIdentifier to 'my view'.
#
# You can call this method from Calabash like this:
#
# query("view marked:'my view', [{setImageWithURL:'https://some/url.png',
# caption:'Funny Cat!'}])
#
# Another way to add a selector to a view is to use an Objective-C category.
#
# In your View Controller .m file
#
# // Google Map View
# @interface GMSMapView (CalabashAdditions)
#
# - (NSString *) JSONRepresentationOfPins;
#
# @end
#
# @implementation GMSMapView (CalabashAdditions)
#
# - (NSString *) JSONRepresentationOfPins {
# // Google Map Views are OpenGL based so they are opaque to Calabash queries.
# // However, you can manage the pins on the map manually and return the list
# // of visible pins as a JSON string.
# }
#
# @end
#
# query('GSMapView', :JSONRepresentationOfPins)
Background: Navigate to the controls page # features/selectors.feature:66
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
INFO: query 'view marked:'controls page'' took 61.073466000379995 milliseconds
Scenario: Unknown selector # features/selectors.feature:69
When I call an unknown selector on a view # features/step_definitions/selector_steps.rb:26
Then I expect to receive back "*****" # features/step_definitions/selector_steps.rb:34
INFO: query 'tabBarButton' took 61.88664599903859 milliseconds
INFO: query '* marked:'controls page'' took 68.18175798980519 milliseconds
INFO: query '* marked:'controls page'' took 67.26306400378235 milliseconds
INFO: query 'view marked:'controls page'' took 62.295962998177856 milliseconds
Scenario: Use __self__ to reference self # features/selectors.feature:73
When I call a method that references the matched view # features/step_definitions/selector_steps.rb:38
Then I expect to receive back "Self reference! Hurray!" # features/step_definitions/selector_steps.rb:34
INFO: query 'tabBarButton' took 63.73126999824308 milliseconds
INFO: query '* marked:'controls page'' took 70.60954201733693 milliseconds
INFO: query '* marked:'controls page'' took 67.51621700823307 milliseconds
INFO: query 'view marked:'controls page'' took 66.08795400825329 milliseconds
# Demonstrates how to chain methods
# view.alarm.isOn
# [view.alarm setIsOn:1]
Scenario: Selector chaining # features/selectors.feature:80
Then the view alarm property is off # features/step_definitions/selector_steps.rb:43
INFO: query 'view marked:'controls page'' took 65.66681899130344 milliseconds
INFO: query 'view marked:'controls page'' took 68.68156598648056 milliseconds
And I can turn the alarm on # features/step_definitions/selector_steps.rb:51
INFO: query 'tabBarButton' took 62.15905598946847 milliseconds
INFO: query '* marked:'controls page'' took 66.81502601713873 milliseconds
INFO: query '* marked:'controls page'' took 63.52970897569321 milliseconds
INFO: query 'view marked:'controls page'' took 62.471584999002516 milliseconds
Scenario: Selector arguments # features/selectors.feature:84
Then I call selector with pointer argument # features/step_definitions/selector_steps.rb:65
INFO: query 'view marked:'controls page'' took 65.187024010811 milliseconds
Then I call selector with int argument # features/step_definitions/selector_steps.rb:70
INFO: query 'view marked:'controls page'' took 72.65292698866688 milliseconds
Then I call selector with unsigned int argument # features/step_definitions/selector_steps.rb:70
INFO: query 'view marked:'controls page'' took 62.32963298680261 milliseconds
Then I call selector with short argument # features/step_definitions/selector_steps.rb:79
INFO: query 'view marked:'controls page'' took 62.867710017599165 milliseconds
Then I call selector with unsigned short argument # features/step_definitions/selector_steps.rb:79
INFO: query 'view marked:'controls page'' took 65.43975102249533 milliseconds
Then I call selector with float argument # features/step_definitions/selector_steps.rb:106
INFO: query 'view marked:'controls page'' took 61.197182978503406 milliseconds
Then I call selector with double argument # features/step_definitions/selector_steps.rb:111
INFO: query 'view marked:'controls page'' took 67.05371401039883 milliseconds
Then I call selector with long double argument # features/step_definitions/selector_steps.rb:111
INFO: query 'view marked:'controls page'' took 70.77015002141707 milliseconds
Then I call selector with c string argument # features/step_definitions/selector_steps.rb:156
INFO: query 'view marked:'controls page'' took 74.87479399424046 milliseconds
INFO: query 'view marked:'controls page'' took 63.876285013975576 milliseconds
Then I call selector with char argument # features/step_definitions/selector_steps.rb:120
INFO: query 'view marked:'controls page'' took 64.84601000556722 milliseconds
INFO: query 'view marked:'controls page'' took 63.247513986425474 milliseconds
Then I call selector with unsigned char argument # features/step_definitions/selector_steps.rb:120
INFO: query 'view marked:'controls page'' took 80.54535399423912 milliseconds
INFO: query 'view marked:'controls page'' took 92.42531799827702 milliseconds
INFO: query 'view marked:'controls page'' took 106.34744598064572 milliseconds
INFO: query 'view marked:'controls page'' took 71.64373001432978 milliseconds
Then I call selector with BOOL argument # features/step_definitions/selector_steps.rb:140
INFO: query 'view marked:'controls page'' took 79.17890101089142 milliseconds
Then I call selector with long argument # features/step_definitions/selector_steps.rb:88
INFO: query 'view marked:'controls page'' took 82.55806498345919 milliseconds
Then I call selector with unsigned long argument # features/step_definitions/selector_steps.rb:88
INFO: query 'view marked:'controls page'' took 63.658652012236416 milliseconds
Then I call selector with long long argument # features/step_definitions/selector_steps.rb:97
INFO: query 'view marked:'controls page'' took 69.8204550135415 milliseconds
Then I call selector with unsigned long long argument # features/step_definitions/selector_steps.rb:97
INFO: query 'view marked:'controls page'' took 75.4984789818991 milliseconds
Then I call selector with point argument # features/step_definitions/selector_steps.rb:161
INFO: query 'view marked:'controls page'' took 84.01710700127296 milliseconds
Then I call selector with rect argument # features/step_definitions/selector_steps.rb:161
INFO: query 'tabBarButton' took 65.77162398025393 milliseconds
INFO: query '* marked:'controls page'' took 66.86680400162004 milliseconds
INFO: query '* marked:'controls page'' took 60.75186000089161 milliseconds
INFO: query 'view marked:'controls page'' took 62.001609010621905 milliseconds
Scenario: Selector return values # features/selectors.feature:104
Then I call a selector that returns void # features/step_definitions/selector_steps.rb:172
INFO: query 'view marked:'controls page'' took 64.67379300738685 milliseconds
Then I call a selector that returns a pointer # features/step_definitions/selector_steps.rb:177
INFO: query 'view marked:'controls page'' took 64.82827998115681 milliseconds
Then I call a selector that returns a char # features/step_definitions/selector_steps.rb:181
INFO: query 'view marked:'controls page'' took 61.528138001449406 milliseconds
Then I call a selector that returns an unsigned char # features/step_definitions/selector_steps.rb:181
INFO: query 'view marked:'controls page'' took 74.21612000325695 milliseconds
Then I call a selector that returns a c string # features/step_definitions/selector_steps.rb:192
INFO: query 'view marked:'controls page'' took 71.35662602377124 milliseconds
Then I call a selector that returns a BOOL # features/step_definitions/selector_steps.rb:196
INFO: query 'view marked:'controls page'' took 64.73453101352789 milliseconds
Then I call a selector that returns a bool # features/step_definitions/selector_steps.rb:196
INFO: query 'view marked:'controls page'' took 63.37400901247747 milliseconds
Then I call a selector that returns an int # features/step_definitions/selector_steps.rb:205
INFO: query 'view marked:'controls page'' took 64.7534320014529 milliseconds
Then I call a selector that returns an unsigned int # features/step_definitions/selector_steps.rb:205
INFO: query 'view marked:'controls page'' took 64.53010500990786 milliseconds
Then I call a selector that returns a short # features/step_definitions/selector_steps.rb:216
INFO: query 'view marked:'controls page'' took 63.259796996135265 milliseconds
Then I call a selector that returns an unsigned short # features/step_definitions/selector_steps.rb:216
INFO: query 'view marked:'controls page'' took 62.41676301578991 milliseconds
Then I call a selector that returns a double # features/step_definitions/selector_steps.rb:227
INFO: query 'view marked:'controls page'' took 64.76519501302391 milliseconds
Then I call a selector that returns a long double # features/step_definitions/selector_steps.rb:227
INFO: query 'view marked:'controls page'' took 61.072059004800394 milliseconds
Then I call a selector that returns a float # features/step_definitions/selector_steps.rb:238
INFO: query 'view marked:'controls page'' took 59.69901199568994 milliseconds
Then I call a selector that returns a long # features/step_definitions/selector_steps.rb:242
INFO: query 'view marked:'controls page'' took 62.08321699523367 milliseconds
Then I call a selector that returns an unsigned long # features/step_definitions/selector_steps.rb:242
INFO: query 'view marked:'controls page'' took 60.04317098995671 milliseconds
Then I call a selector that returns a long long # features/step_definitions/selector_steps.rb:253
INFO: query 'view marked:'controls page'' took 60.379044007277116 milliseconds
Then I call a selector that returns an unsigned long long # features/step_definitions/selector_steps.rb:253
INFO: query 'view marked:'controls page'' took 62.909107975428924 milliseconds
Then I call a selector that returns a point # features/step_definitions/selector_steps.rb:264
INFO: query 'view marked:'controls page'' took 60.786636982811615 milliseconds
Then I call a selector that returns a rect # features/step_definitions/selector_steps.rb:270
INFO: query 'view marked:'controls page'' took 59.185427002375945 milliseconds
Then I call a selector that returns a CalSmokeAlarm struct # features/step_definitions/selector_steps.rb:276
INFO: query 'tabBarButton' took 68.21130699245259 milliseconds
INFO: query '* marked:'controls page'' took 65.8234519942198 milliseconds
INFO: query '* marked:'controls page'' took 63.962009007809684 milliseconds
INFO: query 'view marked:'controls page'' took 60.22324599325657 milliseconds
@failing
Scenario: Selector with multiple arguments # features/selectors.feature:128
Then I call a selector on a view that has 3 arguments # features/step_definitions/selector_steps.rb:280
{
"rect" => {
"y" => 0,
"height" => 0,
"center_y" => 0,
"x" => 0,
"center_x" => 0,
"width" => 0
},
"id" => nil,
"visible" => 1,
"accessibilityElement" => 1,
"hint" => nil,
"label" => nil,
"class" => "__NSArrayI",
"description" => "(\n a,\n b,\n c\n)",
"value" => nil,
"text" => nil
}
INFO: query 'tabBarButton' took 62.526838009944186 milliseconds
INFO: query '* marked:'controls page'' took 65.05887402454391 milliseconds
INFO: query '* marked:'controls page'' took 61.07057599001564 milliseconds
INFO: query 'view marked:'controls page'' took 62.811879004584625 milliseconds
@failing
Scenario: Chained selector with multiple arguments # features/selectors.feature:132
Then I make a chained call to a selector with 3 arguments # features/step_definitions/selector_steps.rb:290
[
[0] {
"rect" => {
"y" => 0,
"height" => 0,
"center_y" => 0,
"x" => 0,
"center_x" => 0,
"width" => 0
},
"id" => nil,
"visible" => 1,
"accessibilityElement" => 1,
"hint" => nil,
"label" => nil,
"class" => "__NSArrayI",
"description" => "(\n a,\n b,\n c\n)",
"value" => nil,
"text" => nil
}
]
@server_log_level
Feature: Server Log Level
In order to gain insights about the server runtime
As a Calabash maintainer and application tester
I want a way to control the log level of the server
INFO: query 'tabBarButton' took 73.35997201153077 milliseconds
Scenario: Asking for the log level # features/server_log_level.feature:7
Given the app has launched # features/step_definitions/shared_steps.rb:43
Then I can ask the server for its log level # features/step_definitions/server_log_level_steps.rb:1
INFO: query 'tabBarButton' took 73.82765001966618 milliseconds
Scenario: Setting the log level # features/server_log_level.feature:11
Given the app has launched # features/step_definitions/shared_steps.rb:43
And I set the server log level to debug # features/step_definitions/server_log_level_steps.rb:6
Then the server log level should be debug # features/step_definitions/server_log_level_steps.rb:10
@sheets
Feature: Sheets
In order to demonstrate interactions with sheets
As a Calabash maintainer
I want some Scenarios that show Calabash working with sheets
INFO: query 'tabBarButton' took 64.1857760201674 milliseconds
INFO: query '* marked:'special page'' took 67.24767800187692 milliseconds
INFO: query '* marked:'special page'' took 65.16777499928139 milliseconds
# These are sheets that are presented by _your_ application using:
#
# UIActionSheetView *sheet = [[UIActionSheet alloc] ...];
# # Action sheets can be anchored in many ways; this is
# # just an example.
# [sheet showFromTabBar:self.tabBarController.tabBar];
#
# These are _not_ sheets generated by the OS on behalf of your
# app. An example of sheet present by the OS on behalf of your
# app is the sheet that appears when you try to cancel an email
# message.
Background: Navigate to the special tab # features/sheets.feature:19
Given I see the special tab # features/step_definitions/shared_steps.rb:1
INFO: query 'view marked:'show sheet'' took 63.21832901448943 milliseconds
@animations
Scenario: Touch OK button on a sheet # features/sheets.feature:23
When I touch the show sheet button # features/step_definitions/sheets_steps.rb:56
INFO: query 'view:'_UIAlertControllerView'' took 70.19947399385273 milliseconds
Then I see a sheet # features/step_definitions/sheets_steps.rb:61
INFO: query 'view:'_UIAlertControllerView' descendant label marked:'Smoke Test!'' took 72.91103701572865 milliseconds
Then I see the "Smoke Test!" sheet # features/step_definitions/sheets_steps.rb:65
And I wait for all animations to stop # features/step_definitions/animations_steps.rb:2
INFO: query 'view:'_UIAlertControllerView'' took 68.55188202462159 milliseconds
And I can dismiss the sheet with the Cancel button # features/step_definitions/sheets_steps.rb:69
@slider
Feature: UISlider
In order to interact with sliders
As a developer
I want a Slider API
INFO: query 'tabBarButton' took 82.19367297715507 milliseconds
INFO: query '* marked:'controls page'' took 74.70087899127975 milliseconds
INFO: query '* marked:'controls page'' took 82.94914299040101 milliseconds
Scenario: Setting the value of a slider # features/slider.feature:7
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UISlider marked:'slider'' took 63.29390802420676 milliseconds
INFO: query 'UISlider marked:'slider'' took 57.9515699937474 milliseconds
INFO: query 'UISlider marked:'slider'' took 59.57271400257014 milliseconds
Then I can get the min and max values of the slider # features/step_definitions/slider_steps.rb:2
INFO: query 'UISlider marked:'slider'' took 59.299881977494806 milliseconds
INFO: query 'UISlider marked:'slider'' took 60.02163898665458 milliseconds
And I can set the value of the slider to 8 # features/step_definitions/slider_steps.rb:14
@gestures @tapping
Feature: Gestures
In order to test tapping
As a developer
I want a Tap API
INFO: query 'tabBarButton' took 63.773769012186676 milliseconds
INFO: query '* marked:'gestures page'' took 63.001973991049454 milliseconds
INFO: query '* marked:'gestures page'' took 63.818469003308564 milliseconds
INFO: query '* marked:'gestures page'' took 63.491061999229714 milliseconds
INFO: query '* marked:'gestures page'' took 63.40831200941466 milliseconds
INFO: query '* marked:'gestures page'' took 63.70082500507124 milliseconds
INFO: query '* marked:'gestures page'' took 63.18209500750527 milliseconds
INFO: query '* marked:'gestures page'' took 65.55786699755117 milliseconds
INFO: query '* marked:'gestures page'' took 67.5428280082997 milliseconds
INFO: query '* marked:'gestures page'' took 67.79960202402435 milliseconds
INFO: query '* marked:'gestures page'' took 69.24232302117161 milliseconds
INFO: query '* marked:'gestures page'' took 62.31171599938534 milliseconds
INFO: query '* marked:'gestures page'' took 66.03854001150467 milliseconds
INFO: query '* marked:'gestures page'' took 61.84762401971966 milliseconds
INFO: query '* marked:'gestures page'' took 62.14015500154346 milliseconds
INFO: query '* marked:'gestures page'' took 62.52285500522703 milliseconds
INFO: query '* marked:'gestures page'' took 62.79774699942209 milliseconds
INFO: query '* marked:'gestures page'' took 63.19334599538706 milliseconds
INFO: query '* marked:'gestures page'' took 61.55925299390219 milliseconds
INFO: query '* marked:'gestures page'' took 61.97734602028504 milliseconds
INFO: query '* marked:'gestures page'' took 62.804211978800595 milliseconds
INFO: query '* marked:'gestures page'' took 63.761383993551135 milliseconds
INFO: query '* marked:'gestures page'' took 62.24375398596749 milliseconds
INFO: query '* marked:'gestures page'' took 61.865908006438985 milliseconds
INFO: query '* marked:'gestures page'' took 62.73591500939801 milliseconds
INFO: query '* marked:'gestures page'' took 74.93154300027527 milliseconds
INFO: query '* marked:'gestures page'' took 78.31357800750993 milliseconds
INFO: query '* marked:'gestures page'' took 79.0049770148471 milliseconds
INFO: query '* marked:'gestures page'' took 69.48221000493504 milliseconds
INFO: query '* marked:'gestures page'' took 62.64000397641212 milliseconds
Background: Navigate to Tapping page # features/tap_gestures.feature:8
Given I see the gestures tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UITableViewCell marked:'tapping row'' took 62.53376801032573 milliseconds
INFO: query 'view marked:'tapping page'' took 64.15822499548085 milliseconds
And I see the tapping page # features/step_definitions/tap_gestures_steps.rb:32
INFO: query 'view marked:'left box'' took 62.55820000660606 milliseconds
Scenario: Double tap # features/tap_gestures.feature:12
When I double tap the left box # features/step_definitions/tap_gestures_steps.rb:47
INFO: query 'label marked:'last gesture'' took 65.02335099503398 milliseconds
Then the gesture description changes to double tap # features/step_definitions/tap_gestures_steps.rb:61
INFO: query 'tabBarButton' took 68.9386640151497 milliseconds
INFO: query '* marked:'gestures page'' took 69.36387799214572 milliseconds
INFO: query '* marked:'gestures page'' took 72.26704698405229 milliseconds
INFO: query '* marked:'gestures page'' took 71.62924099247903 milliseconds
INFO: query '* marked:'gestures page'' took 66.89022699720226 milliseconds
INFO: query 'UITableViewCell marked:'tapping row'' took 62.21382599323988 milliseconds
INFO: query 'view marked:'tapping page'' took 61.8155550037045 milliseconds
INFO: query 'view marked:'left box'' took 63.009549980051816 milliseconds
Scenario: Long press # features/tap_gestures.feature:16
When I long press the left box for 1 second # features/step_definitions/tap_gestures_steps.rb:53
INFO: query 'label marked:'last gesture'' took 65.55510900216177 milliseconds
Then the gesture description changes to long press # features/step_definitions/tap_gestures_steps.rb:61
INFO: query 'view marked:'right box'' took 64.68481497722678 milliseconds
When I long press the right box for 2 seconds # features/step_definitions/tap_gestures_steps.rb:53
INFO: query 'label marked:'last gesture'' took 70.410048996564 milliseconds
Then the gesture description changes to long press # features/step_definitions/tap_gestures_steps.rb:61
@resetting @ideviceinstaller @user_defaults
Feature: NSUserDefaults and App Sandbox
INFO: query 'tabBarButton' took 929.5995979919098 milliseconds
INFO: query '* marked:'controls page'' took 623.2741010026075 milliseconds
INFO: query '* marked:'controls page'' took 1038.0684059928171 milliseconds
# These tests are dependent on each other and must be run in a particular
# order. In general, this is a bad practice, but there are times when it is
# necessary. In this case, we are testing the behavior of resetting an
# app's sandbox and re-installing. The strict ordering is achieved by
# using the 'xx_< Scenario Name >' convention.
#
# When these tests are run on physical devices, the reset will be
# performed by re-installing the app.
#
# These tests require ideviceinstaller. You can install ideviceinstaller
# with brew. We do not maintain the ideviceinstaller, libimobiledevice, or
# homebrew tools. These are third-party software. If you have issues with these
# tools, you are on your own. Please do not report problems with these tools
# on the Calabash channels.
Background: Navigate to the controls page # features/user_defaults.feature:20
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
# Demonstrate that resetting the app works using NSUserDefaults as proxy. The
# on/off state of the switch on the first view is persisted in NSUserDefaults.
#
# NSUserDefaults are part of the app sandbox and so are deleted by
# `reset_app_sandbox`.
@reset_app_btw_scenarios @backdoor
Scenario: 20 I turn the switch on and add files to sandbox # features/user_defaults.feature:30
And I drop some files in the sandbox # features/step_definitions/user_defaults_steps.rb:91
INFO: query 'view marked:'controls page' switch marked:'switch'' took 1034.1799010057002 milliseconds
INFO: query 'view marked:'controls page' switch marked:'switch'' took 925.7812339928932 milliseconds
INFO: query 'view marked:'controls page' switch marked:'switch'' took 620.5623680143617 milliseconds
Given I turn the switch on # features/step_definitions/user_defaults_steps.rb:54
INFO: query 'tabBarButton' took 64.03542598127387 milliseconds
INFO: query '* marked:'controls page'' took 103.5106600029394 milliseconds
INFO: query '* marked:'controls page'' took 110.00421599601395 milliseconds
@backdoor
Scenario: 21 The switch should be on and the files in the sandbox # features/user_defaults.feature:35
Then I should see the files I put in the sandbox # features/step_definitions/user_defaults_steps.rb:97
INFO: query 'view marked:'controls page' switch marked:'switch'' took 88.6412329855375 milliseconds
Then I should see the switch is on # features/step_definitions/user_defaults_steps.rb:83
INFO: query 'tabBarButton' took 516.9679170066956 milliseconds
INFO: query '* marked:'controls page'' took 1247.6120800129138 milliseconds
INFO: query '* marked:'controls page'' took 1136.1722509900574 milliseconds
@reset_app_btw_scenarios @backdoor
Scenario: 22 The switch should be off and there should be no files in sandbox # features/user_defaults.feature:41
Then I should not see the files I put in the sandbox # features/step_definitions/user_defaults_steps.rb:103
INFO: query 'view marked:'controls page' switch marked:'switch'' took 1239.2142800090369 milliseconds
Then I should see the switch is off # features/step_definitions/user_defaults_steps.rb:83
60 scenarios (60 passed)
315 steps (315 passed)
16m45.558s
Using the default, simulator and common profiles...
@alerts
Feature: Alerts
In order to demonstrate interactions with alerts
As a Calabash maintainer
I want some Scenarios that show Calabash working with alerts
INFO: query 'tabBarButton' took 1348.6373859923333 milliseconds
INFO: query '* marked:'special page'' took 932.6467669743579 milliseconds
INFO: query '* marked:'special page'' took 1138.0868820124306 milliseconds
# These are alerts that are presented by _your_ application using:
#
# UIAlertView *alert = [[UIAlertView alloc] ...];
# [alert show];
#
# These are _not_ alerts generated by the OS on behalf of your
# app. Such alerts are also known as the "Privacy alerts". You
# can read more about interacting with UIAlerts presented by the
# OS here:
#
# https://github.com/calabash/calabash-ios/wiki/Managing-Privacy-Alerts%3A--Location-Services%2C-APNS%2C-Contacts
Background: Navigate to the special tab # features/alerts.feature:19
Given I see the special tab # features/step_definitions/shared_steps.rb:1
INFO: query 'view marked:'show alert'' took 1552.3246270022355 milliseconds
@animations
Scenario: Touch OK button on alert # features/alerts.feature:23
When I touch the show alert button # features/step_definitions/alerts_steps.rb:127
INFO: query 'view:'_UIAlertControllerView'' took 1033.2827169913799 milliseconds
Then I see an alert # features/step_definitions/alerts_steps.rb:132
INFO: query 'view:'_UIAlertControllerView' descendant label' took 1449.8109869891778 milliseconds
Then I see the "Smoke Test!" alert # features/step_definitions/alerts_steps.rb:136
And I wait for all animations to stop # features/step_definitions/animations_steps.rb:2
INFO: query 'view:'_UIAlertControllerView'' took 1342.799506004667 milliseconds
INFO: query 'view:'_UIAlertControllerView'' took 1757.1610489976592 milliseconds
And I can dismiss the alert with the OK button # features/step_definitions/alerts_steps.rb:140
INFO: query 'tabBarButton' took 1445.311542978743 milliseconds
INFO: query '* marked:'special page'' took 1553.7248229957186 milliseconds
INFO: query '* marked:'special page'' took 1142.8009289957117 milliseconds
INFO: query 'view marked:'show alert'' took 1749.7910130186938 milliseconds
Scenario: Verify the alert title, message, and buttons # features/alerts.feature:30
When I touch the show alert button # features/step_definitions/alerts_steps.rb:127
INFO: query 'view:'_UIAlertControllerView'' took 2163.570984994294 milliseconds
Then I see an alert # features/step_definitions/alerts_steps.rb:132
INFO: query 'view:'_UIAlertControllerView'' took 1339.4164350174833 milliseconds
INFO: query 'view:'_UIAlertControllerActionView'' took 170.85441399831325 milliseconds
INFO: query 'view:'_UIAlertControllerView'' took 129.02170699089766 milliseconds
INFO: query 'view:'_UIAlertControllerView' descendant label' took 134.69453499419615 milliseconds
And the title of the alert is "Smoke Test!" # features/step_definitions/alerts_steps.rb:146
INFO: query 'view:'_UIAlertControllerView'' took 132.09845998790115 milliseconds
INFO: query 'view:'_UIAlertControllerActionView'' took 211.29170199856162 milliseconds
INFO: query 'view:'_UIAlertControllerView'' took 212.07096098805778 milliseconds
INFO: query 'view:'_UIAlertControllerView' descendant label' took 210.16244401107542 milliseconds
And the message of the alert is "Another day, another iOS alert" # features/step_definitions/alerts_steps.rb:150
INFO: query 'view:'_UIAlertControllerView'' took 220.97474700422026 milliseconds
INFO: query 'view:'_UIAlertControllerActionView'' took 139.82012000633404 milliseconds
And the left hand button is "Cancel" # features/step_definitions/alerts_steps.rb:154
INFO: query 'view:'_UIAlertControllerView'' took 130.43061399366707 milliseconds
INFO: query 'view:'_UIAlertControllerActionView'' took 132.5954149942845 milliseconds
And the right hand button is "OK" # features/step_definitions/alerts_steps.rb:154
INFO: query 'view:'_UIAlertControllerView'' took 132.09622399881482 milliseconds
INFO: query 'view:'_UIAlertControllerView'' took 134.83514499966986 milliseconds
And I can dismiss the alert with the OK button # features/step_definitions/alerts_steps.rb:140
@animations
Feature: Animations
In order to demonstrate that Calabash works when there are animations
As a Calabash maintainer
I want some Scenarios with views that animate
INFO: query 'tabBarButton' took 127.24544398952276 milliseconds
INFO: query '* marked:'special page'' took 136.19453500723466 milliseconds
INFO: query '* marked:'special page'' took 130.1007560105063 milliseconds
Background: Navigate to the special tab # features/animations.feature:7
Given I see the special tab # features/step_definitions/shared_steps.rb:1
INFO: query 'view marked:'animated view'' took 122.20997898839414 milliseconds
@backdoor
Scenario: Start an animation and wait for it to finish # features/animations.feature:11
And I have started an animation that lasts 4 seconds # features/step_definitions/animations_steps.rb:12
Then I can wait for the animation to stop # features/step_definitions/animations_steps.rb:23
INFO: query 'tabBarButton' took 127.27880099555477 milliseconds
INFO: query '* marked:'special page'' took 139.35040700016543 milliseconds
INFO: query '* marked:'special page'' took 123.25542498729192 milliseconds
@network_indicator @backdoor
Scenario: Start the network indicator and wait for it to finish # features/animations.feature:17
And I start the network indicator for 4 seconds # features/step_definitions/animations_steps.rb:31
Then I can wait for the indicator to stop # features/step_definitions/animations_steps.rb:36
INFO: query 'tabBarButton' took 129.6832939842716 milliseconds
INFO: query '* marked:'special page'' took 132.1171509916894 milliseconds
INFO: query '* marked:'special page'' took 131.55745598487556 milliseconds
Scenario: Pass an unknown condition to the condition route # features/animations.feature:21
When I pass an unknown condition to wait_for_condition # features/step_definitions/animations_steps.rb:44
INFO: query '*' took 135.14638700871728 milliseconds
Then the app should not crash # features/step_definitions/animations_steps.rb:62
And an error should be raised # features/step_definitions/animations_steps.rb:66
INFO: query 'tabBarButton' took 120.80628800322302 milliseconds
INFO: query '* marked:'special page'' took 124.19346699607559 milliseconds
INFO: query '* marked:'special page'' took 121.32707700948231 milliseconds
# It is impossible to pass a nil query. The client will substitute a '*'
Scenario: Call wait_for_animation with a nil query # features/animations.feature:27
When I pass an empty query to wait_for_none_animating # features/step_definitions/animations_steps.rb:53
INFO: query '*' took 127.04723700881004 milliseconds
Then the app should not crash # features/step_definitions/animations_steps.rb:62
And an error should be raised # features/step_definitions/animations_steps.rb:66
@backdoor
Feature: Backdoors
In order make UI testing faster and easier
As a tester
I want a way to get my app into a good shape for testing
and to get some state from my app at runtime
INFO: query 'tabBarButton' took 145.37566801300272 milliseconds
Background: Launch the app # features/backdoor.feature:8
Given the app has launched # features/step_definitions/shared_steps.rb:43
@unhandled_structs
Scenario: Struct return type # features/backdoor.feature:12
When I call backdoor on a method that returns a CGSize # features/step_definitions/backdoor_steps.rb:2
Then I see that CGSize is not fully supported # features/step_definitions/backdoor_steps.rb:6
When I call backdoor on a method that returns LPSmokeAlarm struct # features/step_definitions/backdoor_steps.rb:10
Then I see that arbitrary structs are not fully supported # features/step_definitions/backdoor_steps.rb:14
INFO: query 'tabBarButton' took 129.21938800718635 milliseconds
# ☀ <== * ; Gherkin can not handle * in step names.
# For example, void\* does not work - * is not escaped
@unhandle_arguments
Scenario: Unhandled arguments # features/backdoor.feature:21
Then void☀ arguments are not handled # features/step_definitions/backdoor_steps.rb:18
And primitive pointer arguments like float☀ and int☀ are not handled # features/step_definitions/backdoor_steps.rb:22
And NSError☀☀ arguments are not handled # features/step_definitions/backdoor_steps.rb:26
And primitive array arguments like int[] are not handled # features/step_definitions/backdoor_steps.rb:30
And arbitrary struct arguments are not handled # features/step_definitions/backdoor_steps.rb:34
And CGSize arguments are not handled # features/step_definitions/backdoor_steps.rb:38
INFO: query 'tabBarButton' took 197.76674601598643 milliseconds
Scenario: Backdoor selector is unknown # features/backdoor.feature:29
When I call backdoor with an unknown selector # features/step_definitions/backdoor_steps.rb:50
backdoor call failed:
selector => 'unknownSelector:'
arguments => '[""]'
reason => 'The backdoor: 'unknownSelector:' is undefined'
You must define 'unknownSelector:' in your UIApplicationDelegate.
// Example
-(NSString *)unknownSelector:(NSString *)argument {
// do stuff here
return @"a result";
}
// Documentation
http://developer.xamarin.com/guides/testcloud/calabash/working-with/backdoors/#backdoor_in_iOS
Then I should see a helpful error message # features/step_definitions/backdoor_steps.rb:59
INFO: query 'tabBarButton' took 123.21714000427164 milliseconds
@void
Scenario: Void return type # features/backdoor.feature:34
When I call backdoor on a method with a void return type # features/step_definitions/backdoor_steps.rb:63
Then I get back <VOID> # features/step_definitions/backdoor_steps.rb:67
INFO: query 'tabBarButton' took 122.05083400476724 milliseconds
@unknown_encoding
Scenario: Long double retrun type is not supported # features/backdoor.feature:39
When I call backdoor on a method that returns long double # features/step_definitions/backdoor_steps.rb:71
Then I get an unknown encoding exception # features/step_definitions/backdoor_steps.rb:76
INFO: query 'tabBarButton' took 121.15980699309148 milliseconds
@date
Scenario: NSDate is returned as a string # features/backdoor.feature:44
Then backdoors that return NSDate return a ruby string # features/step_definitions/backdoor_steps.rb:82
INFO: query 'tabBarButton' took 118.25483001302928 milliseconds
@self
Scenario: Passing self as an argument # features/backdoor.feature:48
Then I can pass self as an argument using __self__ # features/step_definitions/backdoor_steps.rb:42
INFO: query 'tabBarButton' took 119.55094398581423 milliseconds
@nil
Scenario: Passing nil as an argument # features/backdoor.feature:52
Then I can pass nil as an argument using __nil__ # features/step_definitions/backdoor_steps.rb:46
INFO: query 'tabBarButton' took 122.13317200075835 milliseconds
@primitive
Scenario: Primitive return types # features/backdoor.feature:56
Then I call backdoor on a method that returns BOOL NO # features/step_definitions/backdoor_steps.rb:88
Then I call backdoor on a method that returns BOOL YES # features/step_definitions/backdoor_steps.rb:88
Then I call backdoor on a method that returns an int # features/step_definitions/backdoor_steps.rb:99
Then I call backdoor on a method that returns an unsigned int # features/step_definitions/backdoor_steps.rb:99
Then I call backdoor on a method that returns an NSInteger # features/step_definitions/backdoor_steps.rb:99
Then I call backdoor on a method that returns an NSUInteger # features/step_definitions/backdoor_steps.rb:99
Then I call backdoor on a method that returns a short # features/step_definitions/backdoor_steps.rb:117
Then I call backdoor on a method that returns a unsigned short # features/step_definitions/backdoor_steps.rb:117
Then I call backdoor on a method that returns a float # features/step_definitions/backdoor_steps.rb:129
Then I call backdoor on a method that returns a double # features/step_definitions/backdoor_steps.rb:129
Then I call backdoor on a method that returns a CGFloat # features/step_definitions/backdoor_steps.rb:129
Then I call backdoor on a method that returns a char # features/step_definitions/backdoor_steps.rb:144
Then I call backdoor on a method that returns an unsigned char # features/step_definitions/backdoor_steps.rb:144
Then I call backdoor on a method that returns a c string # features/step_definitions/backdoor_steps.rb:156
Then I call backdoor on a method that returns a const char star # features/step_definitions/backdoor_steps.rb:160
Then I call backdoor on a method that returns a long # features/step_definitions/backdoor_steps.rb:164
Then I call backdoor on a method that returns an unsigned long # features/step_definitions/backdoor_steps.rb:176
Then I call backdoor on a method that returns a long long # features/step_definitions/backdoor_steps.rb:164
Then I call backdoor on a method that returns an unsigned long # features/step_definitions/backdoor_steps.rb:176
Then I call backdoor on a method that returns a CGPoint # features/step_definitions/backdoor_steps.rb:188
Then I call backdoor on a method that returns a CGSize # features/step_definitions/backdoor_steps.rb:2
Then I call backdoor on a method that returns a CGRect # features/step_definitions/backdoor_steps.rb:194
INFO: query 'tabBarButton' took 120.11615699157119 milliseconds
@pointer
Scenario: Pointer return types # features/backdoor.feature:81
Then I call backdoor on a method that returns an NSNumber # features/step_definitions/backdoor_steps.rb:202
Then I call backdoor on a method that returns an NSArray # features/step_definitions/backdoor_steps.rb:206
Then I call backdoor on a method that returns an NSDictionary # features/step_definitions/backdoor_steps.rb:210
Then I call backdoor on a method that returns an NSString # features/step_definitions/backdoor_steps.rb:215
INFO: query 'tabBarButton' took 120.57101199752651 milliseconds
@pointer
Scenario: Methods with pointer arguments # features/backdoor.feature:88
Then I call backdoor on a method with one pointer argument # features/step_definitions/backdoor_steps.rb:219
Then I call backdoor on a method with two pointer arguments # features/step_definitions/backdoor_steps.rb:219
Then I call backdoor on a method with three pointer arguments # features/step_definitions/backdoor_steps.rb:219
INFO: query 'tabBarButton' took 125.88487000903115 milliseconds
@primitive
Scenario: Methods with primative arguments # features/backdoor.feature:94
Then I call backdoor on a method with a BOOL argument # features/step_definitions/backdoor_steps.rb:242
Then I call backdoor on a method with a bool argument # features/step_definitions/backdoor_steps.rb:247
Then I call backdoor on a method with an NSInteger argument # features/step_definitions/backdoor_steps.rb:252
Then I call backdoor on a method with an NSUInteger argument # features/step_definitions/backdoor_steps.rb:252
Then I call backdoor on a method with a short argument # features/step_definitions/backdoor_steps.rb:264
Then I call backdoor on a method with an unsigned short argument # features/step_definitions/backdoor_steps.rb:264
Then I call backdoor on a method with a CGFloat argument # features/step_definitions/backdoor_steps.rb:276
Then I call backdoor on a method with a double argument # features/step_definitions/backdoor_steps.rb:276
Then I call backdoor on a method with a float argument # features/step_definitions/backdoor_steps.rb:276
Then I call backdoor on a method with a char argument # features/step_definitions/backdoor_steps.rb:290
Then I call backdoor on a method with an unsigned char argument # features/step_definitions/backdoor_steps.rb:290
Then I call backdoor on a method with a long argument # features/step_definitions/backdoor_steps.rb:301
Then I call backdoor on a method with a unsigned long argument # features/step_definitions/backdoor_steps.rb:301
Then I call backdoor on a method with a long long argument # features/step_definitions/backdoor_steps.rb:313
Then I call backdoor on a method with a unsigned long long argument # features/step_definitions/backdoor_steps.rb:313
Then I call backdoor on a method with a c string argument # features/step_definitions/backdoor_steps.rb:325
Then I call backdoor on a method with a const char star argument # features/step_definitions/backdoor_steps.rb:329
Then I call backdoor on a method with a CGPoint argument # features/step_definitions/backdoor_steps.rb:334
Then I call backdoor on a method with a CGRect argument # features/step_definitions/backdoor_steps.rb:339
Then I call backdoor on a method with a Class argument # features/step_definitions/backdoor_steps.rb:344
@drag_and_drop
Feature: Drag and Drop
In order to test the Calabash pan API
As a Calabash developer
I want to drag a view onto another view
INFO: query 'tabBarButton' took 124.03257199912332 milliseconds
INFO: query '* marked:'special page'' took 126.3551419833675 milliseconds
INFO: query '* marked:'special page'' took 139.32743802433833 milliseconds
Background: Navigate to the special tab # features/drag_and_drop.feature:7
Given I see the special tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UIImageView marked:'red'' took 119.55372599186376 milliseconds
INFO: query 'UIView marked:'left well'' took 120.52942300215364 milliseconds
INFO: query 'UIImageView marked:'red'' took 117.42894002236426 milliseconds
Scenario: Drag the red box to the left well # features/drag_and_drop.feature:10
When I drag the red box to the left well # features/step_definitions/drag_and_drop_steps.rb:72
INFO: query 'UIView marked:'left well'' took 120.23147099534981 milliseconds
Then the well should change color # features/step_definitions/drag_and_drop_steps.rb:86
INFO: query 'UIImageView marked:'red'' took 122.89560900535434 milliseconds
And the box goes back to its original position # features/step_definitions/drag_and_drop_steps.rb:93
INFO: query 'tabBarButton' took 126.5456120017916 milliseconds
INFO: query '* marked:'special page'' took 124.62942901765928 milliseconds
INFO: query '* marked:'special page'' took 119.0324539784342 milliseconds
INFO: query 'UIImageView marked:'blue'' took 117.5618669949472 milliseconds
INFO: query 'UIView marked:'right well'' took 116.59098899690434 milliseconds
INFO: query 'UIImageView marked:'blue'' took 117.979322996689 milliseconds
Scenario: Drag the blue box to the right well # features/drag_and_drop.feature:15
When I drag the blue box to the right well # features/step_definitions/drag_and_drop_steps.rb:72
INFO: query 'UIView marked:'right well'' took 134.64873199700378 milliseconds
Then the well should change color # features/step_definitions/drag_and_drop_steps.rb:86
INFO: query 'UIImageView marked:'blue'' took 158.13519197399728 milliseconds
And the box goes back to its original position # features/step_definitions/drag_and_drop_steps.rb:93
INFO: query 'tabBarButton' took 130.51516501582228 milliseconds
INFO: query '* marked:'special page'' took 121.88517101458274 milliseconds
INFO: query '* marked:'special page'' took 120.05134101491421 milliseconds
INFO: query 'UIImageView marked:'green'' took 116.56370901619084 milliseconds
INFO: query 'UIView marked:'left well'' took 121.090557979187 milliseconds
INFO: query 'UIImageView marked:'green'' took 120.42546199518256 milliseconds
Scenario: Drag the green box to the left well # features/drag_and_drop.feature:20
When I drag the green box to the left well # features/step_definitions/drag_and_drop_steps.rb:72
INFO: query 'UIView marked:'left well'' took 143.6901300039608 milliseconds
Then the well should change color # features/step_definitions/drag_and_drop_steps.rb:86
INFO: query 'UIImageView marked:'green'' took 146.60234499024227 milliseconds
And the box goes back to its original position # features/step_definitions/drag_and_drop_steps.rb:93
@flash
Feature: Flash
In order to explore my app's view heirarchy
As an app tester and develop
I want Calabash to be able to visually indicate which views match a query
INFO: query 'tabBarButton' took 125.20927900914103 milliseconds
INFO: query '* marked:'special page'' took 125.26775200967677 milliseconds
INFO: query '* marked:'special page'' took 123.7314709869679 milliseconds
Background: Navigate to special tab # features/flash.feature:7
Given I see the special tab # features/step_definitions/shared_steps.rb:1
Scenario: Flashing # features/flash.feature:10
Then I can flash the buttons # features/step_definitions/flash_steps.rb:2
And I can flash the labels in the tab bar # features/step_definitions/flash_steps.rb:7
When the flash query matches no views # features/step_definitions/flash_steps.rb:12
Then flash returns an empty array # features/step_definitions/flash_steps.rb:16
@localization @simulator
Feature: Can launch a simulator in German
INFO: query 'tabBarButton' took 1668.698941997718 milliseconds
@german
Scenario: Launch simulator in German and query for text # features/german.feature:6
Given the app has launched # features/step_definitions/shared_steps.rb:43
INFO: query 'tabBarButton' took 1662.574173999019 milliseconds
INFO: query '* marked:'special page'' took 1453.6544120055623 milliseconds
INFO: query '* marked:'special page'' took 1765.349178982433 milliseconds
And I see the special tab # features/step_definitions/shared_steps.rb:1
INFO: query '* marked:'localized label'' took 1341.0462499887217 milliseconds
INFO: query '* marked:'localized label'' took 1244.8647810088005 milliseconds
Then I see localized text "Beschriften mit lokalisiertem Text" # features/step_definitions/german_steps.rb:2
@screenshot @issue_246
Feature: Screenshot embed in and out of cucumber world
Cucumber RuntimeError Hey!
# undefined method `embed` (NoMethodError) when calling screenshot_and_raise
# https://github.com/calabash/calabash-ios/issues/246
Scenario: screenshots outside of a page # features/issue_246_screenshot_embed.feature:8
When I use screenshot_and_raise in the context of cucumber # features/step_definitions/issue_246_screenshot_steps.rb:34
Then I should get a runtime error # features/step_definitions/issue_246_screenshot_steps.rb:70
NotPOM RuntimeError Hey!
Scenario: screenshots in a page that does not extend IBase # features/issue_246_screenshot_embed.feature:12
When I screenshot_and_raise in a page that does not inherit from IBase # features/step_definitions/issue_246_screenshot_steps.rb:46
Then I should get a runtime error # features/step_definitions/issue_246_screenshot_steps.rb:70
But it should not be a NoMethod error for embed # features/step_definitions/issue_246_screenshot_steps.rb:78
POM RuntimeError Hey!
Scenario: screenshots in a page that does extend IBase # features/issue_246_screenshot_embed.feature:17
When I screenshot_and_raise in a page that does inherit from IBase # features/step_definitions/issue_246_screenshot_steps.rb:58
Then I should get a runtime error # features/step_definitions/issue_246_screenshot_steps.rb:70
But it should not be a NoMethod error for embed # features/step_definitions/issue_246_screenshot_steps.rb:78
@keyboard
Feature: Typing on the Keyboard
In order to enter text like a user
As an app tester
I want Calabash to provide a Keyboard API
INFO: query 'tabBarButton' took 1038.4002829960082 milliseconds
INFO: query '* marked:'controls page'' took 1454.0109009831212 milliseconds
INFO: query '* marked:'controls page'' took 1238.5757919983007 milliseconds
Background: Navigate to the controls tab # features/keyboard.feature:7
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UITextField index:0' took 1556.8738660076633 milliseconds
INFO: query 'UITextField index:0' took 1342.5895539985504 milliseconds
@travis
Scenario: I should be able to type something # features/keyboard.feature:11
Then I type "Hello" # features/step_definitions/keyboard_steps.rb:9
And the first responder text is "Hello" # features/step_definitions/keyboard_steps.rb:30
And I dismiss the keyboard by tapping the keyboard action key # features/step_definitions/keyboard_steps.rb:19
INFO: query 'tabBarButton' took 124.7728530142922 milliseconds
INFO: query '* marked:'controls page'' took 130.29710701084696 milliseconds
INFO: query '* marked:'controls page'' took 131.5639299864415 milliseconds
INFO: query '* marked:'cal text field'' took 130.2776200172957 milliseconds
INFO: query '* marked:'cal text field'' took 138.0748140218202 milliseconds
Scenario: Interacting with non-UITextInput responders # features/keyboard.feature:16
Then I touch the CalTextField # features/step_definitions/keyboard_steps.rb:23
And the first responder text is "CalTextField" # features/step_definitions/keyboard_steps.rb:30
INFO: query '* marked:'cal text field'' took 174.64482600917108 milliseconds
And I can append the text of the CalTextField # features/step_definitions/keyboard_steps.rb:36
And I dismiss the keyboard that is attached to the CalTextField # features/step_definitions/keyboard_steps.rb:52
@resetting @ideviceinstaller @keychain
Feature: iOS Keychain
INFO: query 'tabBarButton' took 124.58432899438776 milliseconds
INFO: query '* marked:'controls page'' took 127.63880399870686 milliseconds
INFO: query '* marked:'controls page'' took 129.2870940233115 milliseconds
# These tests are dependent on each other and must be run in a particular
# order. In general, this is a bad practice, but there are times when it is
# necessary. In this case, we are testing the behavior of resetting an
# app's sandbox and re-installing. The strict ordering is achieved by
# using the 'xx_< Scenario Name >' convention.
#
# When these tests are run on physical devices, the reset will be
# performed by re-installing the app.
#
# The Keychain API will removed in Calabash 2.0. It will be replaced by a
# separate gem and a Calabash plug-in.
#
# These tests require ideviceinstaller. You can install ideviceinstaller
# with brew. We do not maintain the ideviceinstaller, libimobiledevice, or
# homebrew tools. These are third-party software. If you have issues with these
# tools, you are on your own. Please do not report problems with these tools
# on the Calabash channels.
Background: Navigate to the controls page # features/keychain.feature:23
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
# Demonstrate that the keychain API works.
Scenario: 00 I set the keychain item # features/keychain.feature:27
Given that the keychain contains the account password "pa$$w0rd" for "clever_user98" # features/step_definitions/keychain_steps.rb:34
INFO: query 'tabBarButton' took 125.73392200283706 milliseconds
INFO: query '* marked:'controls page'' took 138.31056599156 milliseconds
INFO: query '* marked:'controls page'' took 143.50868700421415 milliseconds
Scenario: 01 I should see the keychain item exists in the next Scenario # features/keychain.feature:30
Then the keychain should contain the account password "pa$$w0rd" for "clever_user98" # features/step_definitions/keychain_steps.rb:21
When I clear the keychain # features/step_definitions/keychain_steps.rb:13
Then the keychain should be empty because I called clear_keychain # features/step_definitions/keychain_steps.rb:41
INFO: query 'tabBarButton' took 1646.2930320121814 milliseconds
INFO: query '* marked:'controls page'' took 1345.3874789993279 milliseconds
INFO: query '* marked:'controls page'' took 1554.4593969825655 milliseconds
# Demonstrate that resetting the simulator content and settings works using
# the keychain as proxy.
#
# Keychain items persist over app installs and sandbox resets on the
# iOS Simulator and physical devices.
#
# On the simulator, you can reset the simulator contents and settings to
# clear the keychain, but on devices re-installing does not clear the
# keychain. You must call `keychain_clear` after the app is launched.
# See features/support/01_launch.rb to see how this is done in the Before hook.
@reset_device_settings
Scenario: 10 I set the keychain item # features/keychain.feature:46
Given that the keychain contains the account password "pa$$w0rd" for "clever_user98" # features/step_definitions/keychain_steps.rb:34
INFO: query 'tabBarButton' took 822.6593309955206 milliseconds
INFO: query '* marked:'controls page'' took 1449.219603993697 milliseconds
INFO: query '* marked:'controls page'' took 1349.776805989677 milliseconds
Scenario: 11 I should see the keychain item exists because I did not reset the device settings before this Scenario # features/keychain.feature:49
Then the keychain should contain the account password "pa$$w0rd" for "clever_user98" # features/step_definitions/keychain_steps.rb:21
INFO: query 'tabBarButton' took 1345.7603370188735 milliseconds
INFO: query '* marked:'controls page'' took 1037.265271996148 milliseconds
INFO: query '* marked:'controls page'' took 1660.9389880031813 milliseconds
@reset_device_settings
Scenario: 12 The keychain should be empty because I reset the device settings before this Scenario # features/keychain.feature:53
Then the keychain should be empty because I reset the device # features/step_definitions/keychain_steps.rb:67
@pan
Feature: Pan
In order to perform swipes
As a developer
I want a Pan API
INFO: query 'tabBarButton' took 1864.664138003718 milliseconds
INFO: query '* marked:'scrolls page'' took 1245.1596409955528 milliseconds
INFO: query '* marked:'scrolls page'' took 1656.9344059971627 milliseconds
Background: Navigate to the scrolls page # features/pan.feature:7
Given I see the scrolls tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UITableViewCell marked:'table views row'' took 1451.0571100108791 milliseconds
Scenario: Left-to-right screen pan in portrait # features/pan.feature:10
When I touch the table views row # features/step_definitions/scroll_steps.rb:16
INFO: query 'view marked:'table views page'' took 1243.7526579888072 milliseconds
Then I see the table views page # features/step_definitions/scroll_steps.rb:26
INFO: query '*' took 1754.8879069800023 milliseconds
When I pan left on the screen # features/step_definitions/pan_steps.rb:1
INFO: query 'view marked:'scrolls page'' took 889.4087240041699 milliseconds
Then I go back to the Scrolls page # features/step_definitions/pan_steps.rb:17
INFO: query 'tabBarButton' took 126.92106497706845 milliseconds
INFO: query '* marked:'scrolls page'' took 128.23750800453126 milliseconds
INFO: query '* marked:'scrolls page'' took 123.95199298043735 milliseconds
INFO: query 'UITableViewCell marked:'collection views row'' took 135.38722801604308 milliseconds
Scenario: Left-to-right screen pan in landscape # features/pan.feature:16
When I touch the collection views row # features/step_definitions/scroll_steps.rb:16
INFO: query 'view marked:'collection views page'' took 139.29846201790497 milliseconds
Then I see the collection views page # features/step_definitions/scroll_steps.rb:26
And I try to rotate the home button so it is on the right # features/step_definitions/rotation_steps.rb:2
INFO: query '*' took 343.0923080013599 milliseconds
When I pan left on the screen # features/step_definitions/pan_steps.rb:1
INFO: query 'view marked:'scrolls page'' took 136.29436699557118 milliseconds
Then I go back to the Scrolls page # features/step_definitions/pan_steps.rb:17
@pinch
Feature: Pinch
In order to perform pinches
As a developer
I want a Pinch API
INFO: query 'tabBarButton' took 128.69391500134952 milliseconds
Background: App has launched # features/pinch.feature:7
Given the app has launched # features/step_definitions/shared_steps.rb:43
INFO: query 'tabBarButton' took 126.59893400268629 milliseconds
INFO: query '* marked:'gestures page'' took 125.79468000330962 milliseconds
INFO: query '* marked:'gestures page'' took 125.9643410157878 milliseconds
Scenario: A basic pinch on the box # features/pinch.feature:10
Given I see the gestures tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UITableViewCell marked:'pinching row'' took 120.99364399909973 milliseconds
INFO: query 'view marked:'pinching page'' took 131.04524998925626 milliseconds
And I see the pinching page # features/step_definitions/pinch_steps.rb:1
INFO: query 'UIView id:'box'' took 126.96959800086915 milliseconds
When I pinch in on the box # features/step_definitions/pinch_steps.rb:16
INFO: query 'UIView id:'box'' took 124.02858899440616 milliseconds
Then the box grows # features/step_definitions/pinch_steps.rb:34
When I pinch out on the box # features/step_definitions/pinch_steps.rb:29
INFO: query 'UIView id:'box'' took 126.63091198191978 milliseconds
Then the box shrinks # features/step_definitions/pinch_steps.rb:22
INFO: query 'tabBarButton' took 126.1256710276939 milliseconds
INFO: query 'tabBarButton' took 122.96087597496808 milliseconds
INFO: query '* marked:'scrolls page'' took 126.68492301600054 milliseconds
INFO: query '* marked:'scrolls page'' took 136.59520100918598 milliseconds
@map
Scenario: Full screen pinch on map # features/pinch.feature:19
Given I see the scrolls tab # features/step_definitions/shared_steps.rb:1
INFO: query '* marked:'map views row'' took 134.17687700712122 milliseconds
INFO: query '* marked:'map views row'' took 135.8942590013612 milliseconds
INFO: query '* marked:'map'' took 1445.6558199890424 milliseconds
INFO: query '* marked:'map'' took 360.3701630199794 milliseconds
And I see the map page # features/step_definitions/pinch_steps.rb:41
Then I zoom in on the map by pinching out # features/step_definitions/pinch_steps.rb:54
Then I zoom out on the map by pinching in # features/step_definitions/pinch_steps.rb:60
@rotation
Feature: Rotation
In order test my app in all orientations
As a developer
I want Calabash to be able to rotate my app
INFO: query 'tabBarButton' took 221.5977540181484 milliseconds
INFO: query '* marked:'controls page'' took 131.2717969994992 milliseconds
INFO: query '* marked:'controls page'' took 118.78502301988192 milliseconds
# In order for Calabash to be able to rotate your app,
# your app's view controller must respond to orientation
# changes.
#
# Enumerating the various things you need to do to enable
# rotation for all the support iOS versions is beyond the
# scope of this documentation.
#
# This app supports rotation on at least one view controller.
#
# Rotation is exhaustively tested in the Briar iOS example.
# https://github.com/jmoody/briar-ios-example
Scenario: Controller does not respond to orientation changes # features/rotation.feature:20
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
And I try to rotate the home button so it is on the left # features/step_definitions/rotation_steps.rb:2
Then the orientation should be portrait # features/step_definitions/rotation_steps.rb:6
INFO: query 'tabBarButton' took 126.85410201083869 milliseconds
INFO: query '* marked:'special page'' took 129.93807598832063 milliseconds
INFO: query '* marked:'special page'' took 123.18641299498267 milliseconds
Scenario: Controller does respond to orientation changes # features/rotation.feature:25
Given I see the special tab # features/step_definitions/shared_steps.rb:1
And I try to rotate the home button so it is on the right # features/step_definitions/rotation_steps.rb:2
Then the home button should be on the right # features/step_definitions/rotation_steps.rb:14
@screenshots
Feature: Screenshots
In order to gain insights into my app
As a tester
I want a way to take a screenshot
INFO: query 'tabBarButton' took 141.51078500435688 milliseconds
Background: The app has launched # features/screenshots.feature:7
Given the app has launched # features/step_definitions/shared_steps.rb:43
And I have cleared existing screenshots for this feature # features/step_definitions/screenshot_steps.rb:60
And the scenario-screenshots subdirectory exists # features/step_definitions/screenshot_steps.rb:67
Scenario: Default screenshot behavior # features/screenshots.feature:12
When I take a screenshot with the default screenshot method # features/step_definitions/screenshot_steps.rb:74
Then the screenshot will have a number appended to the name # features/step_definitions/screenshot_steps.rb:79
INFO: query 'tabBarButton' took 121.5097300009802 milliseconds
Scenario: My un-numbered screenshot method # features/screenshots.feature:16
When I take a screenshot with my un-numbered screenshot method # features/step_definitions/screenshot_steps.rb:90
Then the screenshot will not have a number appended to the name # features/step_definitions/screenshot_steps.rb:95
@scroll
Feature: Testing scrolling
In order to scroll on tables, collections, map views, and web views
As a developer
I want a Scroll API
INFO: query 'tabBarButton' took 121.98617801186629 milliseconds
INFO: query '* marked:'scrolls page'' took 177.3397540091537 milliseconds
INFO: query '* marked:'scrolls page'' took 164.93492099107243 milliseconds
INFO: query '* marked:'scrolls page'' took 169.48089201468974 milliseconds
INFO: query '* marked:'scrolls page'' took 171.45336998510174 milliseconds
INFO: query '* marked:'scrolls page'' took 167.28851199150085 milliseconds
INFO: query '* marked:'scrolls page'' took 166.3355559867341 milliseconds
INFO: query '* marked:'scrolls page'' took 171.8017940002028 milliseconds
INFO: query '* marked:'scrolls page'' took 168.52326699881814 milliseconds
INFO: query '* marked:'scrolls page'' took 169.19362099724822 milliseconds
INFO: query '* marked:'scrolls page'' took 173.15018799854442 milliseconds
INFO: query '* marked:'scrolls page'' took 177.56620500585996 milliseconds
INFO: query '* marked:'scrolls page'' took 166.40607800218277 milliseconds
INFO: query '* marked:'scrolls page'' took 166.15665701101534 milliseconds
INFO: query '* marked:'scrolls page'' took 166.89113699248992 milliseconds
INFO: query '* marked:'scrolls page'' took 165.33917700871825 milliseconds
INFO: query '* marked:'scrolls page'' took 164.67037700931542 milliseconds
INFO: query '* marked:'scrolls page'' took 151.1408860096708 milliseconds
INFO: query '* marked:'scrolls page'' took 133.1710810190998 milliseconds
INFO: query '* marked:'scrolls page'' took 126.37670600088313 milliseconds
Background: Navigate to the scrolls tab # features/scroll.feature:7
Given I see the scrolls tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UITableView marked:'table'' took 126.51688800542615 milliseconds
Then I see the scrolling views table # features/step_definitions/scroll_steps.rb:2
INFO: query 'UITableViewCell marked:'collection views row'' took 144.9083420156967 milliseconds
Scenario: Collection views # features/scroll.feature:11
When I touch the collection views row # features/step_definitions/scroll_steps.rb:16
INFO: query 'view marked:'collection views page'' took 139.83569300035015 milliseconds
Then I see the collection views page # features/step_definitions/scroll_steps.rb:26
INFO: query 'UICollectionView marked:'logo gallery'' took 124.55312898964621 milliseconds
Then I scroll the logos collection to the steam icon by mark # features/step_definitions/scroll_steps.rb:32
INFO: query 'UICollectionView marked:'logo gallery'' took 125.63224899349734 milliseconds
Then I scroll the logos collection to the github icon by index # features/step_definitions/scroll_steps.rb:60
INFO: query 'UICollectionView marked:'logo gallery'' took 148.24109699111432 milliseconds
Then I scroll the logos collection to the wordpress icon using a subview mark # features/step_definitions/scroll_steps.rb:74
INFO: query 'UICollectionView marked:'logo gallery'' took 127.34746601199731 milliseconds
INFO: query 'UICollectionViewCell marked:'android'' took 131.96089898701757 milliseconds
INFO: query 'UICollectionViewCell marked:'android'' took 127.74944401462562 milliseconds
INFO: query 'UICollectionViewCell marked:'android'' took 127.80999401002191 milliseconds
INFO: query 'UICollectionViewCell marked:'android'' took 128.37023302563466 milliseconds
Then I scroll up on the logos collection to the android icon # features/step_definitions/scroll_steps.rb:104
INFO: query 'UICollectionView marked:'color gallery'' took 129.91363598848693 milliseconds
Then I scroll the colors collection to the middle of the purple boxes # features/step_definitions/scroll_steps.rb:125
INFO: query 'UICollectionView marked:'color gallery'' took 128.07059398619458 milliseconds
Then I scroll the colors collection to the Wedge Antilles box using a subview mark # features/step_definitions/scroll_steps.rb:88
INFO: query 'tabBarButton' took 130.2096440049354 milliseconds
INFO: query '* marked:'scrolls page'' took 144.07526300055906 milliseconds
INFO: query '* marked:'scrolls page'' took 145.18278898322023 milliseconds
INFO: query '* marked:'scrolls page'' took 146.16687598754652 milliseconds
INFO: query 'UITableView marked:'table'' took 134.14608800667338 milliseconds
INFO: query 'UITableViewCell marked:'table views row'' took 134.3336570134852 milliseconds
Scenario: Table views # features/scroll.feature:21
When I touch the table views row # features/step_definitions/scroll_steps.rb:16
INFO: query 'view marked:'table views page'' took 139.5040009811055 milliseconds
Then I see the table views page # features/step_definitions/scroll_steps.rb:26
INFO: query 'UITableView marked:'logos'' took 132.8343179775402 milliseconds
Then I scroll the logos table to the steam row by mark # features/step_definitions/scroll_steps.rb:140
INFO: query 'UITableView marked:'logos'' took 126.51833400013857 milliseconds
Then I scroll the logos table to the apple row using a subview mark # features/step_definitions/scroll_steps.rb:46
INFO: query 'UITableView marked:'logos'' took 134.41371099906974 milliseconds
Then I scroll the logos table to the github row by index # features/step_definitions/scroll_steps.rb:154
INFO: query 'UITableView marked:'logos'' took 124.53065800946206 milliseconds
INFO: query 'UITableViewCell marked:'android'' took 126.41600298229605 milliseconds
INFO: query 'UITableViewCell marked:'android'' took 124.56757799373008 milliseconds
INFO: query 'UITableViewCell marked:'android'' took 129.62754399632104 milliseconds
INFO: query 'UITableViewCell marked:'android'' took 140.98029999877326 milliseconds
Then I scroll up on the logos table to the android row # features/step_definitions/scroll_steps.rb:168
INFO: query 'tabBarButton' took 127.49211199115962 milliseconds
INFO: query '* marked:'scrolls page'' took 143.47276999615133 milliseconds
INFO: query '* marked:'scrolls page'' took 134.01785198948346 milliseconds
INFO: query '* marked:'scrolls page'' took 131.4176080049947 milliseconds
INFO: query 'UITableView marked:'table'' took 124.22739699832164 milliseconds
INFO: query 'UITableViewCell marked:'scroll views row'' took 121.26516801072285 milliseconds
Scenario: Scroll views # features/scroll.feature:29
When I touch the scroll views row # features/step_definitions/scroll_steps.rb:16
INFO: query 'view marked:'scroll views page'' took 127.84795500920154 milliseconds
Then I see the scroll views page # features/step_definitions/scroll_steps.rb:26
INFO: query 'UIScrollView marked:'scroll'' took 132.00558500830084 milliseconds
INFO: query 'UIScrollView marked:'scroll'' took 121.9786709989421 milliseconds
INFO: query 'view marked:'cayenne'' took 119.4582320167683 milliseconds
Then I center the cayenne box to the middle # features/step_definitions/scroll_steps.rb:189
INFO: query 'UIScrollView marked:'scroll'' took 117.6147910009604 milliseconds
INFO: query 'view marked:'purple'' took 121.4563800022006 milliseconds
INFO: query 'view marked:'purple'' took 121.82275799568743 milliseconds
INFO: query 'view marked:'purple'' took 117.69671100773849 milliseconds
INFO: query 'view marked:'purple'' took 130.8012349763885 milliseconds
Then I scroll up to the purple box # features/step_definitions/scroll_steps.rb:202
INFO: query 'UIScrollView marked:'scroll'' took 131.93356999545358 milliseconds
INFO: query 'view marked:'light blue'' took 133.04147101007402 milliseconds
INFO: query 'view marked:'light blue'' took 118.97965602111071 milliseconds
INFO: query 'view marked:'light blue'' took 118.86177698033862 milliseconds
INFO: query 'view marked:'light blue'' took 117.98397800885141 milliseconds
INFO: query 'view marked:'light blue'' took 118.5324749967549 milliseconds
Then I scroll left to the light blue box # features/step_definitions/scroll_steps.rb:231
INFO: query 'UIScrollView marked:'scroll'' took 116.8816490098834 milliseconds
INFO: query 'UIScrollView marked:'scroll'' took 121.57537299208343 milliseconds
INFO: query 'view marked:'cayenne'' took 117.52982600592077 milliseconds
Then I center the cayenne box to the middle # features/step_definitions/scroll_steps.rb:189
INFO: query 'UIScrollView marked:'scroll'' took 118.53399299434386 milliseconds
INFO: query 'view marked:'gray'' took 117.19366800389253 milliseconds
INFO: query 'view marked:'gray'' took 128.24749600258656 milliseconds
INFO: query 'view marked:'gray'' took 118.63154300954193 milliseconds
Then I scroll down to the gray box # features/step_definitions/scroll_steps.rb:252
INFO: query 'UIScrollView marked:'scroll'' took 118.27204099972732 milliseconds
INFO: query 'view marked:'dark gray'' took 118.77534698578529 milliseconds
INFO: query 'view marked:'dark gray'' took 119.16165598086081 milliseconds
INFO: query 'view marked:'dark gray'' took 118.99806500878185 milliseconds
INFO: query 'view marked:'dark gray'' took 115.55369599955156 milliseconds
INFO: query 'view marked:'dark gray'' took 119.77811300312169 milliseconds
Then I scroll right to the dark gray box # features/step_definitions/scroll_steps.rb:273
INFO: query 'UIScrollView marked:'scroll'' took 116.63499200949445 milliseconds
INFO: query '* marked:'cayenne'' took 115.69480499019846 milliseconds
INFO: query '* marked:'cayenne'' took 116.61614701733924 milliseconds
Then I scroll to the cayenne box by mark # features/step_definitions/scroll_steps.rb:294
INFO: query 'UIScrollView marked:'scroll'' took 116.06957201729529 milliseconds
INFO: query '* marked:'purple'' took 126.30171299679205 milliseconds
INFO: query '* marked:'purple'' took 126.62887800252065 milliseconds
And I scroll to the purple box by mark # features/step_definitions/scroll_steps.rb:294
INFO: query 'UIScrollView marked:'scroll'' took 123.20818999432959 milliseconds
INFO: query '* marked:'gray'' took 113.65565800224431 milliseconds
INFO: query '* marked:'gray'' took 113.84506899048574 milliseconds
And I scroll to the gray box by mark # features/step_definitions/scroll_steps.rb:294
INFO: query 'UIScrollView marked:'scroll'' took 114.07202700502239 milliseconds
INFO: query '* marked:'dark gray'' took 115.87900301674381 milliseconds
INFO: query '* marked:'dark gray'' took 114.85986699699424 milliseconds
And I scroll to the dark gray box by mark # features/step_definitions/scroll_steps.rb:294
@selectors
Feature: Calling Arbitrary Selectors
In order to speed up testing and gain insights about my app
As a developer and tester
Want a way of calling arbitrary selectors on UIViews
INFO: query 'tabBarButton' took 127.65910400776193 milliseconds
INFO: query '* marked:'controls page'' took 120.5788180232048 milliseconds
INFO: query '* marked:'controls page'' took 121.98113201884553 milliseconds
# Calabash can call arbitrary selectors on UIView and UIView subclasses.
#
# The classic example is setting the text of a UITextField.
#
# query("UITextField marked:'username'", [{setText:'launisch'}])
#
# In this case, 'setText' is the Objective-C selector.
#
# Consider this use case. You are testing a UIView with an image view
# and a label. During a test you want to change the image and the caption.
#
# @interface MyView : UIView
#
# @property(...) UIImageView *imageView;
# @property(...) UILabel *caption;
#
# @end
#
# @implementation MyView
#
# - (void) setImageWithURL:(NSString *) url caption:(NSString *) caption {
# UIImage *image = // Fetch the image from URL
# self.imageView.image = image;
# self.label.text = caption;
# }
#
# @end
#
# In the view's Controller or in the Interface Builder, you set the the
# accessibilityIdentifier to 'my view'.
#
# You can call this method from Calabash like this:
#
# query("view marked:'my view', [{setImageWithURL:'https://some/url.png',
# caption:'Funny Cat!'}])
#
# Another way to add a selector to a view is to use an Objective-C category.
#
# In your View Controller .m file
#
# // Google Map View
# @interface GMSMapView (CalabashAdditions)
#
# - (NSString *) JSONRepresentationOfPins;
#
# @end
#
# @implementation GMSMapView (CalabashAdditions)
#
# - (NSString *) JSONRepresentationOfPins {
# // Google Map Views are OpenGL based so they are opaque to Calabash queries.
# // However, you can manage the pins on the map manually and return the list
# // of visible pins as a JSON string.
# }
#
# @end
#
# query('GSMapView', :JSONRepresentationOfPins)
Background: Navigate to the controls page # features/selectors.feature:66
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
INFO: query 'view marked:'controls page'' took 113.87633901904337 milliseconds
Scenario: Unknown selector # features/selectors.feature:69
When I call an unknown selector on a view # features/step_definitions/selector_steps.rb:26
Then I expect to receive back "*****" # features/step_definitions/selector_steps.rb:34
INFO: query 'tabBarButton' took 115.15859901555814 milliseconds
INFO: query '* marked:'controls page'' took 122.94328401912935 milliseconds
INFO: query '* marked:'controls page'' took 124.88822199520655 milliseconds
INFO: query 'view marked:'controls page'' took 118.64604000584222 milliseconds
Scenario: Use __self__ to reference self # features/selectors.feature:73
When I call a method that references the matched view # features/step_definitions/selector_steps.rb:38
Then I expect to receive back "Self reference! Hurray!" # features/step_definitions/selector_steps.rb:34
INFO: query 'tabBarButton' took 138.06376300635748 milliseconds
INFO: query '* marked:'controls page'' took 120.25706900749356 milliseconds
INFO: query '* marked:'controls page'' took 116.55560598592274 milliseconds
INFO: query 'view marked:'controls page'' took 115.65002999850549 milliseconds
# Demonstrates how to chain methods
# view.alarm.isOn
# [view.alarm setIsOn:1]
Scenario: Selector chaining # features/selectors.feature:80
Then the view alarm property is off # features/step_definitions/selector_steps.rb:43
INFO: query 'view marked:'controls page'' took 117.00419799308293 milliseconds
INFO: query 'view marked:'controls page'' took 116.98561900993809 milliseconds
And I can turn the alarm on # features/step_definitions/selector_steps.rb:51
INFO: query 'tabBarButton' took 124.90329099819064 milliseconds
INFO: query '* marked:'controls page'' took 116.88300099922344 milliseconds
INFO: query '* marked:'controls page'' took 113.85900899767876 milliseconds
INFO: query 'view marked:'controls page'' took 116.9954719953239 milliseconds
Scenario: Selector arguments # features/selectors.feature:84
Then I call selector with pointer argument # features/step_definitions/selector_steps.rb:65
INFO: query 'view marked:'controls page'' took 113.02990399417467 milliseconds
Then I call selector with int argument # features/step_definitions/selector_steps.rb:70
INFO: query 'view marked:'controls page'' took 114.08092398778535 milliseconds
Then I call selector with unsigned int argument # features/step_definitions/selector_steps.rb:70
INFO: query 'view marked:'controls page'' took 115.12956401566043 milliseconds
Then I call selector with short argument # features/step_definitions/selector_steps.rb:79
INFO: query 'view marked:'controls page'' took 117.54579900298268 milliseconds
Then I call selector with unsigned short argument # features/step_definitions/selector_steps.rb:79
INFO: query 'view marked:'controls page'' took 124.48746900190599 milliseconds
Then I call selector with float argument # features/step_definitions/selector_steps.rb:106
INFO: query 'view marked:'controls page'' took 124.98891301220283 milliseconds
Then I call selector with double argument # features/step_definitions/selector_steps.rb:111
INFO: query 'view marked:'controls page'' took 121.42642101389356 milliseconds
Then I call selector with long double argument # features/step_definitions/selector_steps.rb:111
INFO: query 'view marked:'controls page'' took 124.78143800399266 milliseconds
Then I call selector with c string argument # features/step_definitions/selector_steps.rb:156
INFO: query 'view marked:'controls page'' took 112.11438401369378 milliseconds
INFO: query 'view marked:'controls page'' took 111.85608900268562 milliseconds
Then I call selector with char argument # features/step_definitions/selector_steps.rb:120
INFO: query 'view marked:'controls page'' took 112.49056001543067 milliseconds
INFO: query 'view marked:'controls page'' took 113.21827600477263 milliseconds
Then I call selector with unsigned char argument # features/step_definitions/selector_steps.rb:120
INFO: query 'view marked:'controls page'' took 117.46874600066803 milliseconds
INFO: query 'view marked:'controls page'' took 114.40288502490148 milliseconds
INFO: query 'view marked:'controls page'' took 115.99353500059806 milliseconds
INFO: query 'view marked:'controls page'' took 115.59594399295747 milliseconds
Then I call selector with BOOL argument # features/step_definitions/selector_steps.rb:140
INFO: query 'view marked:'controls page'' took 112.89948600460775 milliseconds
Then I call selector with long argument # features/step_definitions/selector_steps.rb:88
INFO: query 'view marked:'controls page'' took 114.49249301222153 milliseconds
Then I call selector with unsigned long argument # features/step_definitions/selector_steps.rb:88
INFO: query 'view marked:'controls page'' took 113.62994799856097 milliseconds
Then I call selector with long long argument # features/step_definitions/selector_steps.rb:97
INFO: query 'view marked:'controls page'' took 117.16476498986594 milliseconds
Then I call selector with unsigned long long argument # features/step_definitions/selector_steps.rb:97
INFO: query 'view marked:'controls page'' took 117.77573201106861 milliseconds
Then I call selector with point argument # features/step_definitions/selector_steps.rb:161
INFO: query 'view marked:'controls page'' took 113.25848801061511 milliseconds
Then I call selector with rect argument # features/step_definitions/selector_steps.rb:161
INFO: query 'tabBarButton' took 117.88718300522305 milliseconds
INFO: query '* marked:'controls page'' took 125.54513898794539 milliseconds
INFO: query '* marked:'controls page'' took 126.44087499938905 milliseconds
INFO: query 'view marked:'controls page'' took 112.51334400731139 milliseconds
Scenario: Selector return values # features/selectors.feature:104
Then I call a selector that returns void # features/step_definitions/selector_steps.rb:172
INFO: query 'view marked:'controls page'' took 116.72713901498355 milliseconds
Then I call a selector that returns a pointer # features/step_definitions/selector_steps.rb:177
INFO: query 'view marked:'controls page'' took 118.74936000094749 milliseconds
Then I call a selector that returns a char # features/step_definitions/selector_steps.rb:181
INFO: query 'view marked:'controls page'' took 117.97043200931512 milliseconds
Then I call a selector that returns an unsigned char # features/step_definitions/selector_steps.rb:181
INFO: query 'view marked:'controls page'' took 113.65253198891878 milliseconds
Then I call a selector that returns a c string # features/step_definitions/selector_steps.rb:192
INFO: query 'view marked:'controls page'' took 112.61529399780557 milliseconds
Then I call a selector that returns a BOOL # features/step_definitions/selector_steps.rb:196
INFO: query 'view marked:'controls page'' took 113.77122899284586 milliseconds
Then I call a selector that returns a bool # features/step_definitions/selector_steps.rb:196
INFO: query 'view marked:'controls page'' took 113.52379000163637 milliseconds
Then I call a selector that returns an int # features/step_definitions/selector_steps.rb:205
INFO: query 'view marked:'controls page'' took 112.15620499569923 milliseconds
Then I call a selector that returns an unsigned int # features/step_definitions/selector_steps.rb:205
INFO: query 'view marked:'controls page'' took 114.82371497550048 milliseconds
Then I call a selector that returns a short # features/step_definitions/selector_steps.rb:216
INFO: query 'view marked:'controls page'' took 116.38700199546292 milliseconds
Then I call a selector that returns an unsigned short # features/step_definitions/selector_steps.rb:216
INFO: query 'view marked:'controls page'' took 114.87890398711897 milliseconds
Then I call a selector that returns a double # features/step_definitions/selector_steps.rb:227
INFO: query 'view marked:'controls page'' took 113.57725001289509 milliseconds
Then I call a selector that returns a long double # features/step_definitions/selector_steps.rb:227
INFO: query 'view marked:'controls page'' took 114.62077000760473 milliseconds
Then I call a selector that returns a float # features/step_definitions/selector_steps.rb:238
INFO: query 'view marked:'controls page'' took 113.10880599194206 milliseconds
Then I call a selector that returns a long # features/step_definitions/selector_steps.rb:242
INFO: query 'view marked:'controls page'' took 116.88256199704483 milliseconds
Then I call a selector that returns an unsigned long # features/step_definitions/selector_steps.rb:242
INFO: query 'view marked:'controls page'' took 113.46008701366372 milliseconds
Then I call a selector that returns a long long # features/step_definitions/selector_steps.rb:253
INFO: query 'view marked:'controls page'' took 113.01849500159733 milliseconds
Then I call a selector that returns an unsigned long long # features/step_definitions/selector_steps.rb:253
INFO: query 'view marked:'controls page'' took 111.86331498902291 milliseconds
Then I call a selector that returns a point # features/step_definitions/selector_steps.rb:264
INFO: query 'view marked:'controls page'' took 115.21739000454545 milliseconds
Then I call a selector that returns a rect # features/step_definitions/selector_steps.rb:270
INFO: query 'view marked:'controls page'' took 113.39630800648592 milliseconds
Then I call a selector that returns a CalSmokeAlarm struct # features/step_definitions/selector_steps.rb:276
INFO: query 'tabBarButton' took 117.1495679882355 milliseconds
INFO: query '* marked:'controls page'' took 118.2371329923626 milliseconds
INFO: query '* marked:'controls page'' took 122.52003900357522 milliseconds
INFO: query 'view marked:'controls page'' took 120.99424697225913 milliseconds
@failing
Scenario: Selector with multiple arguments # features/selectors.feature:128
Then I call a selector on a view that has 3 arguments # features/step_definitions/selector_steps.rb:280
{
"rect" => {
"y" => 0,
"height" => 0,
"center_y" => 0,
"x" => 0,
"center_x" => 0,
"width" => 0
},
"id" => nil,
"visible" => 1,
"accessibilityElement" => 1,
"hint" => nil,
"label" => nil,
"class" => "__NSArrayI",
"description" => "(\n a,\n b,\n c\n)",
"value" => nil,
"text" => nil
}
INFO: query 'tabBarButton' took 124.13606198970228 milliseconds
INFO: query '* marked:'controls page'' took 120.07131401333027 milliseconds
INFO: query '* marked:'controls page'' took 138.20811599725857 milliseconds
INFO: query 'view marked:'controls page'' took 119.51442700228654 milliseconds
@failing
Scenario: Chained selector with multiple arguments # features/selectors.feature:132
Then I make a chained call to a selector with 3 arguments # features/step_definitions/selector_steps.rb:290
[
[0] {
"rect" => {
"y" => 0,
"height" => 0,
"center_y" => 0,
"x" => 0,
"center_x" => 0,
"width" => 0
},
"id" => nil,
"visible" => 1,
"accessibilityElement" => 1,
"hint" => nil,
"label" => nil,
"class" => "__NSArrayI",
"description" => "(\n a,\n b,\n c\n)",
"value" => nil,
"text" => nil
}
]
@server_log_level
Feature: Server Log Level
In order to gain insights about the server runtime
As a Calabash maintainer and application tester
I want a way to control the log level of the server
INFO: query 'tabBarButton' took 116.99556600069627 milliseconds
Scenario: Asking for the log level # features/server_log_level.feature:7
Given the app has launched # features/step_definitions/shared_steps.rb:43
Then I can ask the server for its log level # features/step_definitions/server_log_level_steps.rb:1
INFO: query 'tabBarButton' took 114.89127000095323 milliseconds
Scenario: Setting the log level # features/server_log_level.feature:11
Given the app has launched # features/step_definitions/shared_steps.rb:43
And I set the server log level to debug # features/step_definitions/server_log_level_steps.rb:6
Then the server log level should be debug # features/step_definitions/server_log_level_steps.rb:10
@sheets
Feature: Sheets
In order to demonstrate interactions with sheets
As a Calabash maintainer
I want some Scenarios that show Calabash working with sheets
INFO: query 'tabBarButton' took 118.37099798140116 milliseconds
INFO: query '* marked:'special page'' took 118.35441499715671 milliseconds
INFO: query '* marked:'special page'' took 127.21899300231598 milliseconds
# These are sheets that are presented by _your_ application using:
#
# UIActionSheetView *sheet = [[UIActionSheet alloc] ...];
# # Action sheets can be anchored in many ways; this is
# # just an example.
# [sheet showFromTabBar:self.tabBarController.tabBar];
#
# These are _not_ sheets generated by the OS on behalf of your
# app. An example of sheet present by the OS on behalf of your
# app is the sheet that appears when you try to cancel an email
# message.
Background: Navigate to the special tab # features/sheets.feature:19
Given I see the special tab # features/step_definitions/shared_steps.rb:1
INFO: query 'view marked:'show sheet'' took 136.5194270038046 milliseconds
@animations
Scenario: Touch OK button on a sheet # features/sheets.feature:23
When I touch the show sheet button # features/step_definitions/sheets_steps.rb:56
INFO: query 'view:'_UIAlertControllerView'' took 141.07468599104322 milliseconds
Then I see a sheet # features/step_definitions/sheets_steps.rb:61
INFO: query 'view:'_UIAlertControllerView' descendant label marked:'Smoke Test!'' took 156.25691099558026 milliseconds
Then I see the "Smoke Test!" sheet # features/step_definitions/sheets_steps.rb:65
And I wait for all animations to stop # features/step_definitions/animations_steps.rb:2
INFO: query 'view:'_UIAlertControllerView'' took 133.49465001374483 milliseconds
And I can dismiss the sheet with the Cancel button # features/step_definitions/sheets_steps.rb:69
@slider
Feature: UISlider
In order to interact with sliders
As a developer
I want a Slider API
INFO: query 'tabBarButton' took 123.24905401328579 milliseconds
INFO: query '* marked:'controls page'' took 133.87540099211037 milliseconds
INFO: query '* marked:'controls page'' took 134.8845200263895 milliseconds
Scenario: Setting the value of a slider # features/slider.feature:7
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UISlider marked:'slider'' took 129.5830410090275 milliseconds
INFO: query 'UISlider marked:'slider'' took 119.87306497758254 milliseconds
INFO: query 'UISlider marked:'slider'' took 120.27210000087507 milliseconds
Then I can get the min and max values of the slider # features/step_definitions/slider_steps.rb:2
INFO: query 'UISlider marked:'slider'' took 119.45875201490708 milliseconds
INFO: query 'UISlider marked:'slider'' took 115.23077299352735 milliseconds
And I can set the value of the slider to 8 # features/step_definitions/slider_steps.rb:14
@gestures @tapping
Feature: Gestures
In order to test tapping
As a developer
I want a Tap API
INFO: query 'tabBarButton' took 123.75999600044452 milliseconds
INFO: query '* marked:'gestures page'' took 124.96323700179346 milliseconds
INFO: query '* marked:'gestures page'' took 128.60994998482056 milliseconds
INFO: query '* marked:'gestures page'' took 123.21379498462193 milliseconds
INFO: query '* marked:'gestures page'' took 138.52712701191194 milliseconds
INFO: query '* marked:'gestures page'' took 135.56661299662665 milliseconds
INFO: query '* marked:'gestures page'' took 132.52202601870522 milliseconds
INFO: query '* marked:'gestures page'' took 116.26411901670508 milliseconds
INFO: query '* marked:'gestures page'' took 121.19012998300605 milliseconds
INFO: query '* marked:'gestures page'' took 122.8394010104239 milliseconds
INFO: query '* marked:'gestures page'' took 117.17394800507464 milliseconds
INFO: query '* marked:'gestures page'' took 119.18534600408748 milliseconds
INFO: query '* marked:'gestures page'' took 121.95581899140961 milliseconds
INFO: query '* marked:'gestures page'' took 119.48832200141624 milliseconds
INFO: query '* marked:'gestures page'' took 123.76300900359638 milliseconds
INFO: query '* marked:'gestures page'' took 120.0432269833982 milliseconds
INFO: query '* marked:'gestures page'' took 124.42550997366197 milliseconds
INFO: query '* marked:'gestures page'' took 126.97712201043032 milliseconds
INFO: query '* marked:'gestures page'' took 123.17877999157645 milliseconds
INFO: query '* marked:'gestures page'' took 120.07232999894768 milliseconds
INFO: query '* marked:'gestures page'' took 137.01362698338926 milliseconds
INFO: query '* marked:'gestures page'' took 142.92067298083566 milliseconds
INFO: query '* marked:'gestures page'' took 129.54168498981744 milliseconds
Background: Navigate to Tapping page # features/tap_gestures.feature:8
Given I see the gestures tab # features/step_definitions/shared_steps.rb:1
INFO: query 'UITableViewCell marked:'tapping row'' took 122.04180800472386 milliseconds
INFO: query 'view marked:'tapping page'' took 124.41133600077592 milliseconds
And I see the tapping page # features/step_definitions/tap_gestures_steps.rb:32
INFO: query 'view marked:'left box'' took 123.30523997661658 milliseconds
Scenario: Double tap # features/tap_gestures.feature:12
When I double tap the left box # features/step_definitions/tap_gestures_steps.rb:47
INFO: query 'label marked:'last gesture'' took 132.0029879861977 milliseconds
Then the gesture description changes to double tap # features/step_definitions/tap_gestures_steps.rb:61
INFO: query 'tabBarButton' took 125.03332499181852 milliseconds
INFO: query '* marked:'gestures page'' took 150.02206500503235 milliseconds
INFO: query '* marked:'gestures page'' took 137.2003189753741 milliseconds
INFO: query '* marked:'gestures page'' took 124.12625100114383 milliseconds
INFO: query 'UITableViewCell marked:'tapping row'' took 127.17168201925233 milliseconds
INFO: query 'view marked:'tapping page'' took 124.65840199729428 milliseconds
INFO: query 'view marked:'left box'' took 123.1496449909173 milliseconds
Scenario: Long press # features/tap_gestures.feature:16
When I long press the left box for 1 second # features/step_definitions/tap_gestures_steps.rb:53
INFO: query 'label marked:'last gesture'' took 119.27396600367501 milliseconds
Then the gesture description changes to long press # features/step_definitions/tap_gestures_steps.rb:61
INFO: query 'view marked:'right box'' took 134.16426497860812 milliseconds
When I long press the right box for 2 seconds # features/step_definitions/tap_gestures_steps.rb:53
INFO: query 'label marked:'last gesture'' took 120.56816500262357 milliseconds
Then the gesture description changes to long press # features/step_definitions/tap_gestures_steps.rb:61
@resetting @ideviceinstaller @user_defaults
Feature: NSUserDefaults and App Sandbox
INFO: query 'tabBarButton' took 1555.7915740064345 milliseconds
INFO: query '* marked:'controls page'' took 1246.9193460128736 milliseconds
INFO: query '* marked:'controls page'' took 1144.734038010938 milliseconds
# These tests are dependent on each other and must be run in a particular
# order. In general, this is a bad practice, but there are times when it is
# necessary. In this case, we are testing the behavior of resetting an
# app's sandbox and re-installing. The strict ordering is achieved by
# using the 'xx_< Scenario Name >' convention.
#
# When these tests are run on physical devices, the reset will be
# performed by re-installing the app.
#
# These tests require ideviceinstaller. You can install ideviceinstaller
# with brew. We do not maintain the ideviceinstaller, libimobiledevice, or
# homebrew tools. These are third-party software. If you have issues with these
# tools, you are on your own. Please do not report problems with these tools
# on the Calabash channels.
Background: Navigate to the controls page # features/user_defaults.feature:20
Given I see the controls tab # features/step_definitions/shared_steps.rb:1
# Demonstrate that resetting the app works using NSUserDefaults as proxy. The
# on/off state of the switch on the first view is persisted in NSUserDefaults.
#
# NSUserDefaults are part of the app sandbox and so are deleted by
# `reset_app_sandbox`.
@reset_app_btw_scenarios @backdoor
Scenario: 20 I turn the switch on and add files to sandbox # features/user_defaults.feature:30
And I drop some files in the sandbox # features/step_definitions/user_defaults_steps.rb:91
INFO: query 'view marked:'controls page' switch marked:'switch'' took 1557.2837079816964 milliseconds
INFO: query 'view marked:'controls page' switch marked:'switch'' took 1550.7878569769673 milliseconds
INFO: query 'view marked:'controls page' switch marked:'switch'' took 1236.2468219944276 milliseconds
Given I turn the switch on # features/step_definitions/user_defaults_steps.rb:54
INFO: query 'tabBarButton' took 1237.1611130074598 milliseconds
INFO: query '* marked:'controls page'' took 1446.7272129841149 milliseconds
INFO: query '* marked:'controls page'' took 2068.1092660233844 milliseconds
@backdoor
Scenario: 21 The switch should be on and the files in the sandbox # features/user_defaults.feature:35
Then I should see the files I put in the sandbox # features/step_definitions/user_defaults_steps.rb:97
INFO: query 'view marked:'controls page' switch marked:'switch'' took 1662.833792011952 milliseconds
Then I should see the switch is on # features/step_definitions/user_defaults_steps.rb:83
INFO: query 'tabBarButton' took 1666.5202580043115 milliseconds
INFO: query '* marked:'controls page'' took 1140.1196680089924 milliseconds
INFO: query '* marked:'controls page'' took 931.1401779996231 milliseconds
@reset_app_btw_scenarios @backdoor
Scenario: 22 The switch should be off and there should be no files in sandbox # features/user_defaults.feature:41
Then I should not see the files I put in the sandbox # features/step_definitions/user_defaults_steps.rb:103
INFO: query 'view marked:'controls page' switch marked:'switch'' took 724.9120569904335 milliseconds
Then I should see the switch is off # features/step_definitions/user_defaults_steps.rb:83
60 scenarios (60 passed)
315 steps (315 passed)
18m3.828s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment