furter 0.0.3.2 → 0.0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +9 -9
- data/.gitignore +4 -0
- data/Changelog +4 -0
- data/app/FurterApp/FurterApp/en.lproj/MainStoryboard_iPad.storyboard +58 -57
- data/app/FurterApp/FurterApp/en.lproj/MainStoryboard_iPhone.storyboard +23 -36
- data/features/support/hooks.rb +1 -1
- data/lib/furter.rb +6 -0
- data/lib/furter/accessors/alert_button.rb +1 -1
- data/lib/furter/accessors/button.rb +1 -1
- data/lib/furter/accessors/map_pin.rb +1 -1
- data/lib/furter/accessors/slider.rb +2 -2
- data/lib/furter/accessors/switch.rb +2 -2
- data/lib/furter/accessors/table.rb +1 -1
- data/lib/furter/accessors/table_item.rb +1 -1
- data/lib/furter/accessors/text.rb +3 -3
- data/lib/furter/accessors/view.rb +8 -5
- data/lib/furter/version.rb +1 -1
- data/spec/lib/furter/accessors/button_spec.rb +4 -4
- data/spec/lib/furter/accessors/label_spec.rb +2 -2
- data/spec/lib/furter/accessors/slider_spec.rb +2 -2
- data/spec/lib/furter/accessors/switch_spec.rb +4 -4
- data/spec/lib/furter/accessors/table_spec.rb +2 -2
- data/spec/lib/furter/accessors/text_spec.rb +3 -3
- data/spec/lib/furter/accessors/view_spec.rb +11 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MmEyYjkzYjFiZDM2N2ZmZGE1NzI0MGM4NDlhMzc4MGEwYTRiOGMyOQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
7
|
-
|
6
|
+
MGNlNGMwNzA2NTQyZWVkYzE4NjQwNDk5NGY0ZDM0ODVlYjRlMWM4ZA==
|
7
|
+
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZWMyMjIwMzk3M2M5NWM2YTQ1MGZjYTc0NDUyN2RlZWUwZjk2NjQyMDM3MzJi
|
10
|
+
MDlhZGQxNDRjYzc2Zjc5YmFiMGUzYTY4OGJmYzk2NGE5MDI0MTBkZWZjYzk0
|
11
|
+
ZWFiMjg3YWM1ZTU5ZTkxYWQ5MGQxZDExNGMxYjliMjBjOTc4MWQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NTUwZjU1ZGI5OGMzZjU3NzM3YjI2NzVhNzdiZmQ4NGU1M2FmODg2MGE3ZTQ1
|
14
|
+
ZGMyOWVmMGQ0Nzk4NDE3OTk2ODY3ODI4OGRhMWFkY2JiMTliMTIxNzVmYzFj
|
15
|
+
NGM2MDhjODhjNTIzZWE3ZjAxNmVmMGE5NmIxYWQ0ZjExM2VjN2Y=
|
data/.gitignore
CHANGED
data/Changelog
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
-
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="
|
2
|
+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5053" systemVersion="13C64" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" initialViewController="5">
|
3
3
|
<dependencies>
|
4
|
-
<
|
4
|
+
<deployment defaultVersion="1552" identifier="iOS"/>
|
5
|
+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
5
6
|
</dependencies>
|
6
7
|
<scenes>
|
7
8
|
<!--Navigation Controller-->
|
@@ -22,12 +23,17 @@
|
|
22
23
|
<!--Detail View Controller - Detail-->
|
23
24
|
<scene sceneID="16">
|
24
25
|
<objects>
|
25
|
-
<viewController
|
26
|
+
<viewController title="Detail" id="4" customClass="DetailViewController" sceneMemberID="viewController">
|
27
|
+
<layoutGuides>
|
28
|
+
<viewControllerLayoutGuide type="top" id="oPg-wo-YCs"/>
|
29
|
+
<viewControllerLayoutGuide type="bottom" id="XIX-eX-Khi"/>
|
30
|
+
</layoutGuides>
|
26
31
|
<view key="view" contentMode="scaleToFill" id="26">
|
27
32
|
<rect key="frame" x="0.0" y="64" width="703" height="704"/>
|
28
33
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
29
34
|
<subviews>
|
30
35
|
<label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" text="Detail view content goes here" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="27">
|
36
|
+
<rect key="frame" x="20" y="344" width="663" height="17"/>
|
31
37
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
32
38
|
<accessibility key="accessibilityConfiguration" label="labelByAccessibilityLabel"/>
|
33
39
|
<fontDescription key="fontDescription" type="system" size="system"/>
|
@@ -35,6 +41,7 @@
|
|
35
41
|
<nil key="highlightedColor"/>
|
36
42
|
</label>
|
37
43
|
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" placeholder="First Field" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="mEd-bW-xG3">
|
44
|
+
<rect key="frame" x="163" y="19" width="201" height="30"/>
|
38
45
|
<accessibility key="accessibilityConfiguration" hint="First Field">
|
39
46
|
<accessibilityTraits key="traits" none="YES"/>
|
40
47
|
</accessibility>
|
@@ -46,6 +53,7 @@
|
|
46
53
|
<textInputTraits key="textInputTraits"/>
|
47
54
|
</textField>
|
48
55
|
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="HNa-e4-2od">
|
56
|
+
<rect key="frame" x="163" y="57" width="201" height="30"/>
|
49
57
|
<accessibility key="accessibilityConfiguration" hint="" label="textByLabel">
|
50
58
|
<accessibilityTraits key="traits" none="YES"/>
|
51
59
|
</accessibility>
|
@@ -53,75 +61,63 @@
|
|
53
61
|
<textInputTraits key="textInputTraits"/>
|
54
62
|
</textField>
|
55
63
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Placeholder" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="79f-eU-bDt">
|
64
|
+
<rect key="frame" x="20" y="23" width="91" height="20"/>
|
56
65
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
57
66
|
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
58
67
|
<nil key="highlightedColor"/>
|
59
68
|
</label>
|
60
69
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="nbu-fr-Znd">
|
70
|
+
<rect key="frame" x="20" y="60" width="42" height="21"/>
|
61
71
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
62
72
|
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
63
73
|
<nil key="highlightedColor"/>
|
64
74
|
</label>
|
65
75
|
<switch opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Nyi-ck-8hR">
|
76
|
+
<rect key="frame" x="427" y="60" width="51" height="31"/>
|
66
77
|
<accessibility key="accessibilityConfiguration" label="switchToggle"/>
|
67
78
|
</switch>
|
68
79
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="MgB-Y1-P3J">
|
80
|
+
<rect key="frame" x="163" y="120" width="155" height="30"/>
|
69
81
|
<constraints>
|
70
82
|
<constraint firstAttribute="width" constant="155" id="1Nz-03-QXb"/>
|
71
83
|
</constraints>
|
72
|
-
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
73
84
|
<state key="normal" title="Some Button">
|
74
|
-
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
75
85
|
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
76
86
|
</state>
|
77
|
-
<state key="highlighted">
|
78
|
-
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
79
|
-
</state>
|
80
87
|
<connections>
|
81
88
|
<action selector="someButtonClick:" destination="4" eventType="touchDown" id="LKw-by-anH"/>
|
82
89
|
</connections>
|
83
90
|
</button>
|
84
91
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6Hu-uu-EUY">
|
85
|
-
<
|
92
|
+
<rect key="frame" x="163" y="158" width="155" height="30"/>
|
86
93
|
<state key="normal" title="Labeled Button">
|
87
|
-
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
88
94
|
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
89
95
|
</state>
|
90
|
-
<state key="highlighted">
|
91
|
-
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
92
|
-
</state>
|
93
96
|
<connections>
|
94
97
|
<action selector="onLabeledButtonClicked:" destination="4" eventType="touchDown" id="SRl-Pb-TKU"/>
|
95
98
|
</connections>
|
96
99
|
</button>
|
97
100
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="n4M-Kb-ePv">
|
98
|
-
<
|
101
|
+
<rect key="frame" x="163" y="196" width="155" height="30"/>
|
99
102
|
<state key="normal" title="Go Elsewhere">
|
100
|
-
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
101
103
|
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
102
104
|
</state>
|
103
|
-
<state key="highlighted">
|
104
|
-
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
105
|
-
</state>
|
106
105
|
<connections>
|
107
106
|
<segue destination="2m6-NE-oGx" kind="push" id="g3T-p0-Sec"/>
|
108
107
|
</connections>
|
109
108
|
</button>
|
110
109
|
<slider opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" value="0.5" minValue="0.0" maxValue="1" translatesAutoresizingMaskIntoConstraints="NO" id="wB4-9F-vl7">
|
110
|
+
<rect key="frame" x="204" y="424" width="292" height="31"/>
|
111
111
|
<accessibility key="accessibilityConfiguration" label="sliderByLabel"/>
|
112
112
|
<constraints>
|
113
113
|
<constraint firstAttribute="width" constant="288" id="dCS-tQ-uoe"/>
|
114
114
|
</constraints>
|
115
115
|
</slider>
|
116
116
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="yGC-o4-z18">
|
117
|
-
<
|
117
|
+
<rect key="frame" x="163" y="234" width="155" height="30"/>
|
118
118
|
<state key="normal" title="Tables">
|
119
|
-
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
120
119
|
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
121
120
|
</state>
|
122
|
-
<state key="highlighted">
|
123
|
-
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
124
|
-
</state>
|
125
121
|
<connections>
|
126
122
|
<action selector="showTables:" destination="4" eventType="touchUpInside" id="sVv-C0-lie"/>
|
127
123
|
</connections>
|
@@ -129,37 +125,38 @@
|
|
129
125
|
</subviews>
|
130
126
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
131
127
|
<constraints>
|
132
|
-
<constraint firstItem="HNa-e4-2od" firstAttribute="leading" secondItem="mEd-bW-xG3" secondAttribute="leading"
|
133
|
-
<constraint firstItem="yGC-o4-z18" firstAttribute="leading" secondItem="n4M-Kb-ePv" secondAttribute="leading"
|
134
|
-
<constraint firstItem="79f-eU-bDt" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="20" symbolic="YES"
|
135
|
-
<constraint firstItem="n4M-Kb-ePv" firstAttribute="top" secondItem="6Hu-uu-EUY" secondAttribute="bottom" constant="8" symbolic="YES"
|
136
|
-
<constraint firstAttribute="trailing" secondItem="27" secondAttribute="trailing" constant="20" symbolic="YES"
|
128
|
+
<constraint firstItem="HNa-e4-2od" firstAttribute="leading" secondItem="mEd-bW-xG3" secondAttribute="leading" id="078-hV-XP8"/>
|
129
|
+
<constraint firstItem="yGC-o4-z18" firstAttribute="leading" secondItem="n4M-Kb-ePv" secondAttribute="leading" id="0P7-h0-m30"/>
|
130
|
+
<constraint firstItem="79f-eU-bDt" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="20" symbolic="YES" id="1JC-Aj-NzB"/>
|
131
|
+
<constraint firstItem="n4M-Kb-ePv" firstAttribute="top" secondItem="6Hu-uu-EUY" secondAttribute="bottom" constant="8" symbolic="YES" id="9II-fH-f7K"/>
|
132
|
+
<constraint firstAttribute="trailing" secondItem="27" secondAttribute="trailing" constant="20" symbolic="YES" id="CON-Cb-dBe"/>
|
137
133
|
<constraint firstAttribute="trailing" secondItem="Nyi-ck-8hR" secondAttribute="trailing" constant="227" id="G0P-fu-R9M"/>
|
138
|
-
<constraint firstItem="6Hu-uu-EUY" firstAttribute="leading" secondItem="MgB-Y1-P3J" secondAttribute="leading"
|
139
|
-
<constraint firstItem="HNa-e4-2od" firstAttribute="top" secondItem="mEd-bW-xG3" secondAttribute="bottom" constant="8" symbolic="YES"
|
134
|
+
<constraint firstItem="6Hu-uu-EUY" firstAttribute="leading" secondItem="MgB-Y1-P3J" secondAttribute="leading" id="GwV-n1-zD7"/>
|
135
|
+
<constraint firstItem="HNa-e4-2od" firstAttribute="top" secondItem="mEd-bW-xG3" secondAttribute="bottom" constant="8" symbolic="YES" id="IGG-em-f1e"/>
|
140
136
|
<constraint firstItem="mEd-bW-xG3" firstAttribute="top" secondItem="26" secondAttribute="top" constant="19" id="KGI-gf-TAe"/>
|
141
|
-
<constraint firstItem="27" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="20" symbolic="YES"
|
142
|
-
<constraint firstItem="nbu-fr-Znd" firstAttribute="baseline" secondItem="HNa-e4-2od" secondAttribute="baseline"
|
143
|
-
<constraint firstItem="6Hu-uu-EUY" firstAttribute="top" secondItem="MgB-Y1-P3J" secondAttribute="bottom" constant="8" symbolic="YES"
|
144
|
-
<constraint firstItem="yGC-o4-z18" firstAttribute="top" secondItem="n4M-Kb-ePv" secondAttribute="bottom" constant="8" symbolic="YES"
|
145
|
-
<constraint firstItem="nbu-fr-Znd" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="20" symbolic="YES"
|
146
|
-
<constraint firstItem="MgB-Y1-P3J" firstAttribute="leading" secondItem="HNa-e4-2od" secondAttribute="leading"
|
147
|
-
<constraint firstItem="6Hu-uu-EUY" firstAttribute="trailing" secondItem="MgB-Y1-P3J" secondAttribute="trailing"
|
137
|
+
<constraint firstItem="27" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="20" symbolic="YES" id="LAk-gc-aCl"/>
|
138
|
+
<constraint firstItem="nbu-fr-Znd" firstAttribute="baseline" secondItem="HNa-e4-2od" secondAttribute="baseline" id="M5i-yy-h0N"/>
|
139
|
+
<constraint firstItem="6Hu-uu-EUY" firstAttribute="top" secondItem="MgB-Y1-P3J" secondAttribute="bottom" constant="8" symbolic="YES" id="MWf-xM-HxM"/>
|
140
|
+
<constraint firstItem="yGC-o4-z18" firstAttribute="top" secondItem="n4M-Kb-ePv" secondAttribute="bottom" constant="8" symbolic="YES" id="Obt-JM-krp"/>
|
141
|
+
<constraint firstItem="nbu-fr-Znd" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="20" symbolic="YES" id="RZE-cI-a2V"/>
|
142
|
+
<constraint firstItem="MgB-Y1-P3J" firstAttribute="leading" secondItem="HNa-e4-2od" secondAttribute="leading" id="TI6-aB-T6l"/>
|
143
|
+
<constraint firstItem="6Hu-uu-EUY" firstAttribute="trailing" secondItem="MgB-Y1-P3J" secondAttribute="trailing" id="Tkv-gE-Bb0"/>
|
148
144
|
<constraint firstItem="79f-eU-bDt" firstAttribute="top" secondItem="26" secondAttribute="top" constant="23" id="WAb-82-oiE"/>
|
149
145
|
<constraint firstAttribute="bottom" secondItem="wB4-9F-vl7" secondAttribute="bottom" constant="250" id="bJ6-kP-IlL"/>
|
150
|
-
<constraint firstItem="HNa-e4-2od" firstAttribute="trailing" secondItem="mEd-bW-xG3" secondAttribute="trailing"
|
151
|
-
<constraint firstItem="27" firstAttribute="centerY" secondItem="26" secondAttribute="centerY"
|
146
|
+
<constraint firstItem="HNa-e4-2od" firstAttribute="trailing" secondItem="mEd-bW-xG3" secondAttribute="trailing" id="e4T-wS-zIa"/>
|
147
|
+
<constraint firstItem="27" firstAttribute="centerY" secondItem="26" secondAttribute="centerY" id="fbb-bQ-YI1"/>
|
152
148
|
<constraint firstItem="MgB-Y1-P3J" firstAttribute="top" secondItem="26" secondAttribute="top" constant="120" id="fxO-Da-wfr"/>
|
153
|
-
<constraint firstItem="n4M-Kb-ePv" firstAttribute="leading" secondItem="6Hu-uu-EUY" secondAttribute="leading"
|
149
|
+
<constraint firstItem="n4M-Kb-ePv" firstAttribute="leading" secondItem="6Hu-uu-EUY" secondAttribute="leading" id="gQf-GL-AtC"/>
|
154
150
|
<constraint firstItem="wB4-9F-vl7" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="206" id="iFj-Np-Sq6"/>
|
155
|
-
<constraint firstItem="yGC-o4-z18" firstAttribute="trailing" secondItem="n4M-Kb-ePv" secondAttribute="trailing"
|
151
|
+
<constraint firstItem="yGC-o4-z18" firstAttribute="trailing" secondItem="n4M-Kb-ePv" secondAttribute="trailing" id="k2k-ql-gbD"/>
|
156
152
|
<constraint firstItem="mEd-bW-xG3" firstAttribute="leading" secondItem="26" secondAttribute="leading" constant="163" id="kHo-k9-xfB"/>
|
157
|
-
<constraint firstItem="n4M-Kb-ePv" firstAttribute="trailing" secondItem="6Hu-uu-EUY" secondAttribute="trailing"
|
158
|
-
<constraint firstItem="79f-eU-bDt" firstAttribute="baseline" secondItem="mEd-bW-xG3" secondAttribute="baseline"
|
159
|
-
<constraint firstItem="Nyi-ck-8hR" firstAttribute="top" secondItem="nbu-fr-Znd" secondAttribute="top"
|
153
|
+
<constraint firstItem="n4M-Kb-ePv" firstAttribute="trailing" secondItem="6Hu-uu-EUY" secondAttribute="trailing" id="kXJ-R6-5W3"/>
|
154
|
+
<constraint firstItem="79f-eU-bDt" firstAttribute="baseline" secondItem="mEd-bW-xG3" secondAttribute="baseline" id="piK-8v-q9x"/>
|
155
|
+
<constraint firstItem="Nyi-ck-8hR" firstAttribute="top" secondItem="nbu-fr-Znd" secondAttribute="top" id="wtS-Ul-nbp"/>
|
160
156
|
</constraints>
|
161
157
|
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
162
158
|
</view>
|
159
|
+
<extendedEdge key="edgesForExtendedLayout" bottom="YES"/>
|
163
160
|
<toolbarItems/>
|
164
161
|
<navigationItem key="navigationItem" title="Detail" id="53"/>
|
165
162
|
<connections>
|
@@ -181,11 +178,16 @@
|
|
181
178
|
<scene sceneID="c75-js-XhF">
|
182
179
|
<objects>
|
183
180
|
<viewController title="Elsewhere" id="2m6-NE-oGx" sceneMemberID="viewController">
|
181
|
+
<layoutGuides>
|
182
|
+
<viewControllerLayoutGuide type="top" id="Oj7-mS-nqj"/>
|
183
|
+
<viewControllerLayoutGuide type="bottom" id="O2t-xW-YIE"/>
|
184
|
+
</layoutGuides>
|
184
185
|
<view key="view" contentMode="scaleToFill" id="L6v-eP-0Ap">
|
185
|
-
<rect key="frame" x="0.0" y="
|
186
|
+
<rect key="frame" x="0.0" y="0.0" width="703" height="768"/>
|
186
187
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
187
188
|
<subviews>
|
188
189
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="You are now elsewhere." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2Sw-kC-LPj">
|
190
|
+
<rect key="frame" x="261" y="341" width="181" height="21"/>
|
189
191
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
190
192
|
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
191
193
|
<nil key="highlightedColor"/>
|
@@ -194,7 +196,7 @@
|
|
194
196
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
195
197
|
<constraints>
|
196
198
|
<constraint firstItem="2Sw-kC-LPj" firstAttribute="top" secondItem="L6v-eP-0Ap" secondAttribute="top" constant="341" id="fPL-qj-geg"/>
|
197
|
-
<constraint firstItem="2Sw-kC-LPj" firstAttribute="centerX" secondItem="L6v-eP-0Ap" secondAttribute="centerX"
|
199
|
+
<constraint firstItem="2Sw-kC-LPj" firstAttribute="centerX" secondItem="L6v-eP-0Ap" secondAttribute="centerX" id="iV6-oV-7kk"/>
|
198
200
|
</constraints>
|
199
201
|
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
200
202
|
</view>
|
@@ -209,7 +211,7 @@
|
|
209
211
|
<objects>
|
210
212
|
<splitViewController id="5" sceneMemberID="viewController">
|
211
213
|
<toolbarItems/>
|
212
|
-
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="
|
214
|
+
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackOpaque"/>
|
213
215
|
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
214
216
|
<connections>
|
215
217
|
<segue destination="3" kind="relationship" relationship="masterViewController" id="9"/>
|
@@ -223,30 +225,29 @@
|
|
223
225
|
<!--Master View Controller - Master-->
|
224
226
|
<scene sceneID="24">
|
225
227
|
<objects>
|
226
|
-
<tableViewController
|
227
|
-
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="20">
|
228
|
-
<rect key="frame" x="0.0" y="
|
228
|
+
<tableViewController title="Master" clearsSelectionOnViewWillAppear="NO" id="19" customClass="MasterViewController" sceneMemberID="viewController">
|
229
|
+
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="20">
|
230
|
+
<rect key="frame" x="0.0" y="0.0" width="320" height="768"/>
|
229
231
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
230
232
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
231
233
|
<simulatedOrientationMetrics key="simulatedOrientationMetrics" orientation="landscapeRight"/>
|
232
234
|
<prototypes>
|
233
235
|
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Cell" textLabel="tIi-5l-S0i" style="IBUITableViewCellStyleDefault" id="ZSw-0O-9Pw">
|
234
|
-
<rect key="frame" x="0.0" y="
|
236
|
+
<rect key="frame" x="0.0" y="86" width="320" height="44"/>
|
235
237
|
<autoresizingMask key="autoresizingMask"/>
|
236
|
-
<
|
238
|
+
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="ZSw-0O-9Pw" id="6bz-Nk-434">
|
237
239
|
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
|
238
240
|
<autoresizingMask key="autoresizingMask"/>
|
239
241
|
<subviews>
|
240
242
|
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="tIi-5l-S0i">
|
241
|
-
<rect key="frame" x="
|
243
|
+
<rect key="frame" x="15" y="0.0" width="290" height="43"/>
|
242
244
|
<autoresizingMask key="autoresizingMask"/>
|
243
245
|
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
244
246
|
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
245
247
|
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
246
248
|
</label>
|
247
249
|
</subviews>
|
248
|
-
|
249
|
-
</view>
|
250
|
+
</tableViewCellContentView>
|
250
251
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
251
252
|
</tableViewCell>
|
252
253
|
</prototypes>
|
@@ -279,8 +280,8 @@
|
|
279
280
|
</scene>
|
280
281
|
</scenes>
|
281
282
|
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
282
|
-
<simulatedStatusBarMetrics key="statusBar"
|
283
|
+
<simulatedStatusBarMetrics key="statusBar"/>
|
283
284
|
<simulatedOrientationMetrics key="orientation"/>
|
284
285
|
<simulatedScreenMetrics key="destination"/>
|
285
286
|
</simulatedMetricsContainer>
|
286
|
-
</document>
|
287
|
+
</document>
|
@@ -1,7 +1,8 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
-
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="
|
2
|
+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5053" systemVersion="13C64" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="3">
|
3
3
|
<dependencies>
|
4
|
-
<
|
4
|
+
<deployment defaultVersion="1552" identifier="iOS"/>
|
5
|
+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
|
5
6
|
</dependencies>
|
6
7
|
<scenes>
|
7
8
|
<!--Navigation Controller-->
|
@@ -22,29 +23,28 @@
|
|
22
23
|
<!--Master View Controller - Master-->
|
23
24
|
<scene sceneID="18">
|
24
25
|
<objects>
|
25
|
-
<tableViewController
|
26
|
-
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="13">
|
27
|
-
<rect key="frame" x="0.0" y="
|
26
|
+
<tableViewController title="Master" id="12" customClass="MasterViewController" sceneMemberID="viewController">
|
27
|
+
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="13">
|
28
|
+
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
28
29
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
29
30
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
30
31
|
<prototypes>
|
31
32
|
<tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Cell" textLabel="phq-AM-6qj" style="IBUITableViewCellStyleDefault" id="lJ0-d7-vTF">
|
32
|
-
<rect key="frame" x="0.0" y="
|
33
|
+
<rect key="frame" x="0.0" y="86" width="320" height="44"/>
|
33
34
|
<autoresizingMask key="autoresizingMask"/>
|
34
|
-
<
|
35
|
-
<rect key="frame" x="0.0" y="0.0" width="
|
35
|
+
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="lJ0-d7-vTF" id="XfA-LH-DZO">
|
36
|
+
<rect key="frame" x="0.0" y="0.0" width="287" height="43"/>
|
36
37
|
<autoresizingMask key="autoresizingMask"/>
|
37
38
|
<subviews>
|
38
39
|
<label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="phq-AM-6qj">
|
39
|
-
<rect key="frame" x="
|
40
|
+
<rect key="frame" x="15" y="0.0" width="270" height="43"/>
|
40
41
|
<autoresizingMask key="autoresizingMask"/>
|
41
42
|
<fontDescription key="fontDescription" type="boldSystem" pointSize="20"/>
|
42
43
|
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
43
44
|
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
|
44
45
|
</label>
|
45
46
|
</subviews>
|
46
|
-
|
47
|
-
</view>
|
47
|
+
</tableViewCellContentView>
|
48
48
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
49
49
|
<connections>
|
50
50
|
<segue destination="21" kind="push" identifier="showDetail" id="jZb-fq-zAk"/>
|
@@ -66,35 +66,36 @@
|
|
66
66
|
<!--Detail View Controller - Detail-->
|
67
67
|
<scene sceneID="24">
|
68
68
|
<objects>
|
69
|
-
<viewController
|
69
|
+
<viewController title="Detail" id="21" customClass="DetailViewController" sceneMemberID="viewController">
|
70
|
+
<layoutGuides>
|
71
|
+
<viewControllerLayoutGuide type="top" id="jXf-FB-Fgb"/>
|
72
|
+
<viewControllerLayoutGuide type="bottom" id="krh-jV-bGI"/>
|
73
|
+
</layoutGuides>
|
70
74
|
<view key="view" contentMode="scaleToFill" id="22">
|
71
|
-
<rect key="frame" x="0.0" y="
|
75
|
+
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
72
76
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
73
77
|
<subviews>
|
74
78
|
<label clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" text="Detail view content goes here" textAlignment="center" lineBreakMode="tailTruncation" minimumFontSize="10" translatesAutoresizingMaskIntoConstraints="NO" id="27">
|
79
|
+
<rect key="frame" x="20" y="9" width="280" height="17"/>
|
75
80
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
76
81
|
<fontDescription key="fontDescription" type="system" size="system"/>
|
77
82
|
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
78
83
|
<nil key="highlightedColor"/>
|
79
84
|
</label>
|
80
85
|
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BGA-y0-odx">
|
81
|
-
<
|
86
|
+
<rect key="frame" x="20" y="431" width="46" height="30"/>
|
82
87
|
<state key="normal" title="Button">
|
83
|
-
<color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
|
84
88
|
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
85
89
|
</state>
|
86
|
-
<state key="highlighted">
|
87
|
-
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
88
|
-
</state>
|
89
90
|
</button>
|
90
91
|
</subviews>
|
91
92
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
92
93
|
<constraints>
|
93
94
|
<constraint firstAttribute="bottom" secondItem="BGA-y0-odx" secondAttribute="bottom" constant="107" id="Oz5-UI-e4N"/>
|
94
|
-
<constraint firstItem="27" firstAttribute="leading" secondItem="22" secondAttribute="leading" constant="20" symbolic="YES"
|
95
|
-
<constraint firstItem="BGA-y0-odx" firstAttribute="leading" secondItem="22" secondAttribute="leading" constant="20" symbolic="YES"
|
95
|
+
<constraint firstItem="27" firstAttribute="leading" secondItem="22" secondAttribute="leading" constant="20" symbolic="YES" id="R0m-z7-TWk"/>
|
96
|
+
<constraint firstItem="BGA-y0-odx" firstAttribute="leading" secondItem="22" secondAttribute="leading" constant="20" symbolic="YES" id="a4V-WS-rvQ"/>
|
96
97
|
<constraint firstItem="27" firstAttribute="top" secondItem="22" secondAttribute="top" constant="9" id="fqs-Iu-ZEi"/>
|
97
|
-
<constraint firstAttribute="trailing" secondItem="27" secondAttribute="trailing" constant="20" symbolic="YES"
|
98
|
+
<constraint firstAttribute="trailing" secondItem="27" secondAttribute="trailing" constant="20" symbolic="YES" id="pRe-qY-58T"/>
|
98
99
|
</constraints>
|
99
100
|
</view>
|
100
101
|
<navigationItem key="navigationItem" title="Detail" id="26"/>
|
@@ -107,23 +108,9 @@
|
|
107
108
|
<point key="canvasLocation" x="902" y="64"/>
|
108
109
|
</scene>
|
109
110
|
</scenes>
|
110
|
-
<classes>
|
111
|
-
<class className="DetailViewController" superclassName="UIViewController">
|
112
|
-
<source key="sourceIdentifier" type="project" relativePath="./Classes/DetailViewController.h"/>
|
113
|
-
<relationships>
|
114
|
-
<relationship kind="outlet" name="detailDescriptionLabel" candidateClass="UILabel"/>
|
115
|
-
</relationships>
|
116
|
-
</class>
|
117
|
-
<class className="MasterViewController" superclassName="UITableViewController">
|
118
|
-
<source key="sourceIdentifier" type="project" relativePath="./Classes/MasterViewController.h"/>
|
119
|
-
</class>
|
120
|
-
<class className="NSLayoutConstraint" superclassName="NSObject">
|
121
|
-
<source key="sourceIdentifier" type="project" relativePath="./Classes/NSLayoutConstraint.h"/>
|
122
|
-
</class>
|
123
|
-
</classes>
|
124
111
|
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
125
112
|
<simulatedStatusBarMetrics key="statusBar"/>
|
126
113
|
<simulatedOrientationMetrics key="orientation"/>
|
127
114
|
<simulatedScreenMetrics key="destination" type="retina4"/>
|
128
115
|
</simulatedMetricsContainer>
|
129
|
-
</document>
|
116
|
+
</document>
|
data/features/support/hooks.rb
CHANGED
data/lib/furter.rb
CHANGED
@@ -14,13 +14,13 @@ module Furter
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def has_text?(text)
|
17
|
-
element_exists "view marked
|
17
|
+
element_exists "view marked:\"#{text}\""
|
18
18
|
end
|
19
19
|
|
20
20
|
private
|
21
21
|
def selector
|
22
|
-
return "textField placeholder
|
23
|
-
return "textField marked
|
22
|
+
return "textField placeholder:\"#{@locator[:placeholder]}\"" if @locator[:placeholder]
|
23
|
+
return "textField marked:\"#{@locator[:label]}\"" if @locator[:label]
|
24
24
|
end
|
25
25
|
end
|
26
26
|
end
|
@@ -8,10 +8,13 @@ module Furter
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def click
|
11
|
-
|
12
11
|
wait_for_and_touch selector
|
13
12
|
end
|
14
13
|
|
14
|
+
def tap_and_hold_for(duration)
|
15
|
+
wait_for_and_tap(selector, duration)
|
16
|
+
end
|
17
|
+
|
15
18
|
def visible?
|
16
19
|
element_is_not_hidden selector
|
17
20
|
end
|
@@ -21,7 +24,7 @@ module Furter
|
|
21
24
|
end
|
22
25
|
|
23
26
|
def next_responders
|
24
|
-
frankly_map("view
|
27
|
+
frankly_map("view:\"UIView\"", 'nextResponder').map do |r|
|
25
28
|
r.gsub(/[<>]/,'')
|
26
29
|
end
|
27
30
|
end
|
@@ -34,9 +37,9 @@ module Furter
|
|
34
37
|
def selector_how
|
35
38
|
case
|
36
39
|
when @locator[:label]
|
37
|
-
"marked
|
40
|
+
"marked:\"#{@locator[:label]}\""
|
38
41
|
when @locator[:text]
|
39
|
-
"text
|
42
|
+
"text:\"#{@locator[:text]}\""
|
40
43
|
end
|
41
44
|
end
|
42
45
|
|
@@ -45,7 +48,7 @@ module Furter
|
|
45
48
|
end
|
46
49
|
|
47
50
|
def view_class
|
48
|
-
return "view
|
51
|
+
return "view:\"#{@locator[:type]}\"" if @locator[:type]
|
49
52
|
"view"
|
50
53
|
end
|
51
54
|
end
|
data/lib/furter/version.rb
CHANGED
@@ -7,17 +7,17 @@ describe Furter::Accessors::Button do
|
|
7
7
|
context 'locating buttons' do
|
8
8
|
it 'can be found by text' do
|
9
9
|
text_button = Furter::Accessors::Button.new(:text => 'Some Text')
|
10
|
-
text_button.send(:selector).should eq("button label text
|
10
|
+
text_button.send(:selector).should eq("button label text:\"Some Text\"")
|
11
11
|
end
|
12
12
|
|
13
13
|
it ':text is the same as :label' do
|
14
14
|
label_button = Furter::Accessors::Button.new(:label => 'Some Text')
|
15
|
-
label_button.send(:selector).should eq("button marked
|
15
|
+
label_button.send(:selector).should eq("button marked:\"Some Text\"")
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'can be a custom button type as well' do
|
19
19
|
custom_button = Furter::Accessors::Button.new(:label => 'Some Label', :type => 'MyButtonType')
|
20
|
-
custom_button.send(:selector).should eq("view
|
20
|
+
custom_button.send(:selector).should eq("view:\"MyButtonType\" marked:\"Some Label\"")
|
21
21
|
end
|
22
22
|
end
|
23
|
-
end
|
23
|
+
end
|
@@ -7,12 +7,12 @@ describe Furter::Accessors::Label do
|
|
7
7
|
context 'locating labels' do
|
8
8
|
it 'can be found by accessibility label' do
|
9
9
|
label_control = Furter::Accessors::Label.new(:label => 'someAccessibilityLabel')
|
10
|
-
label_control.send(:selector).should eq("label marked
|
10
|
+
label_control.send(:selector).should eq("label marked:\"someAccessibilityLabel\"")
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'can be found by text' do
|
14
14
|
label_control = Furter::Accessors::Label.new(:text => 'Text Value')
|
15
|
-
label_control.send(:selector).should eq("label text
|
15
|
+
label_control.send(:selector).should eq("label text:\"Text Value\"")
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -7,7 +7,7 @@ describe Furter::Accessors::Slider do
|
|
7
7
|
context 'locating slider' do
|
8
8
|
it 'can be found by id' do
|
9
9
|
id_slider = Furter::Accessors::Slider.new(:label => 'someSliderLabel')
|
10
|
-
id_slider.send(:selector).should eq("view
|
10
|
+
id_slider.send(:selector).should eq("view:\"UISlider\" marked:\"someSliderLabel\"")
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -21,4 +21,4 @@ describe Furter::Accessors::Slider do
|
|
21
21
|
slider.progress.should eq(0.20)
|
22
22
|
end
|
23
23
|
end
|
24
|
-
end
|
24
|
+
end
|
@@ -5,7 +5,7 @@ describe Furter::Accessors::Switch do
|
|
5
5
|
|
6
6
|
context 'locating switches' do
|
7
7
|
it 'can be found by label' do
|
8
|
-
switch.send(:selector).should eq("view
|
8
|
+
switch.send(:selector).should eq("view:\"UISwitch\" marked:\"accessibilityLabel\"")
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -16,13 +16,13 @@ describe Furter::Accessors::Switch do
|
|
16
16
|
|
17
17
|
it 'can turn it off or on' do
|
18
18
|
switch.should_receive(:on?).and_return(true, false)
|
19
|
-
switch.should_receive(:
|
19
|
+
switch.should_receive(:tap_and_hold_for).twice
|
20
20
|
[false, true].each { |on_or_off| switch.set on_or_off }
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'will only toggle if in the expected state' do
|
24
24
|
switch.should_receive(:frankly_map).with(anything, 'isOn').and_return([false])
|
25
|
-
switch.should_not_receive(:
|
25
|
+
switch.should_not_receive(:tap_and_hold_for)
|
26
26
|
switch.set false
|
27
27
|
end
|
28
|
-
end
|
28
|
+
end
|
@@ -7,13 +7,13 @@ describe Furter::Accessors::Table do
|
|
7
7
|
|
8
8
|
context 'locating table' do
|
9
9
|
it 'can be found by id' do
|
10
|
-
table.send(:selector).should eq("view
|
10
|
+
table.send(:selector).should eq("view:\"UITableView\" marked:\"tableView\"")
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
context 'selecting table items' do
|
15
15
|
it 'can select an item by index' do
|
16
|
-
table.should_receive(:touch).with("view
|
16
|
+
table.should_receive(:touch).with("view:\"UITableView\" marked:\"tableView\" tableViewCell index:0")
|
17
17
|
table.touch_index(0)
|
18
18
|
end
|
19
19
|
end
|
@@ -6,11 +6,11 @@ describe Furter::Accessors::Text do
|
|
6
6
|
|
7
7
|
context 'locating text fields' do
|
8
8
|
it 'should work by placeholder' do
|
9
|
-
placeholder.send(:selector).should eq("textField placeholder
|
9
|
+
placeholder.send(:selector).should eq("textField placeholder:\"Placeholder Text\"")
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'should work by accessibility label' do
|
13
|
-
label.send(:selector).should eq("textField marked
|
13
|
+
label.send(:selector).should eq("textField marked:\"accessibilityLabel\"")
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
@@ -28,7 +28,7 @@ describe Furter::Accessors::Text do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
it 'knows if text exists anywhere' do
|
31
|
-
placeholder.should_receive(:element_exists).with("view marked
|
31
|
+
placeholder.should_receive(:element_exists).with("view marked:\"to find anywhere\"")
|
32
32
|
placeholder.has_text? 'to find anywhere'
|
33
33
|
end
|
34
34
|
|
@@ -7,22 +7,22 @@ describe Furter::Accessors::View do
|
|
7
7
|
context 'locating views' do
|
8
8
|
it 'can be found by accessibility label' do
|
9
9
|
by_label = Furter::Accessors::View.new(:label => 'id')
|
10
|
-
by_label.send(:selector).should eq("view marked
|
10
|
+
by_label.send(:selector).should eq("view marked:\"id\"")
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'can use a custom type' do
|
14
14
|
by_type = Furter::Accessors::View.new(:type => 'UICustomType', :label => 'id')
|
15
|
-
by_type.send(:selector).should eq("view
|
15
|
+
by_type.send(:selector).should eq("view:\"UICustomType\" marked:\"id\"")
|
16
16
|
end
|
17
17
|
|
18
18
|
it 'can pass extra information as well' do
|
19
19
|
with_extras = Furter::Accessors::View.new(:label => 'id', :extra => 'label')
|
20
|
-
with_extras.send(:selector).should eq("view marked
|
20
|
+
with_extras.send(:selector).should eq("view marked:\"id\" label")
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'can be found by text' do
|
24
24
|
by_text = Furter::Accessors::View.new(:text => "Some Text")
|
25
|
-
by_text.send(:selector).should eq("view text
|
25
|
+
by_text.send(:selector).should eq("view text:\"Some Text\"")
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
@@ -31,6 +31,12 @@ describe Furter::Accessors::View do
|
|
31
31
|
view.click
|
32
32
|
end
|
33
33
|
|
34
|
+
it 'can be tapped' do
|
35
|
+
expected_duration = 0.1
|
36
|
+
view.should_receive(:wait_for_and_tap).with(selector, expected_duration)
|
37
|
+
view.tap_and_hold_for(expected_duration)
|
38
|
+
end
|
39
|
+
|
34
40
|
it 'knows if it is visible' do
|
35
41
|
view.should_receive(:element_is_not_hidden).with(selector).and_return(true)
|
36
42
|
view.should be_visible
|
@@ -42,7 +48,7 @@ describe Furter::Accessors::View do
|
|
42
48
|
end
|
43
49
|
|
44
50
|
it 'should know about next responders' do
|
45
|
-
view.should_receive(:frankly_map).with("view
|
51
|
+
view.should_receive(:frankly_map).with("view:\"UIView\"", 'nextResponder').and_return(['<First>', '<Second>', '<Third>'])
|
46
52
|
view.next_responders.should eq ['First', 'Second', 'Third']
|
47
53
|
end
|
48
54
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: furter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.3.
|
4
|
+
version: 0.0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Levi Wilson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-05-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: frank-cucumber
|
@@ -214,7 +214,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
214
214
|
version: '0'
|
215
215
|
requirements: []
|
216
216
|
rubyforge_project:
|
217
|
-
rubygems_version: 2.
|
217
|
+
rubygems_version: 2.2.2
|
218
218
|
signing_key:
|
219
219
|
specification_version: 4
|
220
220
|
summary: Higher-level abstraction around iOS drivers
|