rufus 0.6 → 0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/RufusApp/RufusApp.xcodeproj/project.pbxproj +10 -0
- data/RufusApp/RufusApp/LabelAPageViewController.h +14 -0
- data/RufusApp/RufusApp/LabelAPageViewController.m +38 -0
- data/RufusApp/RufusApp/LabelAPageViewController.xib +29 -0
- data/RufusApp/RufusApp/TablePageViewController.m +34 -6
- data/RufusApp/RufusApp/TablePageViewController.xib +18 -18
- data/features/driver.feature +5 -1
- data/features/step_definitions/driver_steps.rb +6 -0
- data/features/step_definitions/table_steps.rb +6 -0
- data/features/support/hooks.rb +1 -0
- data/features/support/screens/label_a_page.rb +11 -0
- data/features/table.feature +9 -1
- data/lib/rufus/accessors/table.rb +15 -0
- data/lib/rufus/driver.rb +4 -0
- data/rufus.gemspec +1 -1
- data/spec/drivers_specs/driver_spec.rb +6 -0
- data/spec/table_spec.rb +17 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YjU3ODRhOWYwMjMxYmQ3MmM2NGZjYWI3YzhhYWYzM2FmZjA3OWZjYw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZDNhNDZhZDAwMGZmYzllNGU1NTI2NTBkOTRkN2ZmOGFiOTcxYmMyYw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YzE0OGFjOTMyMzJkOTczZDYzZjU2ZjkzYmFjMDk1NjQ1Y2UyMmY3ZmVkYmY2
|
10
|
+
ZGE1NmYyMGY5MWI4MDNmNDkxZGQ2NDMzODc3NmQyY2M1ZjUxYzEwZmZhNGEy
|
11
|
+
MTgwNjk5NzJjMzVlZDk5ZTA0YjE5OGE0MGVmMGI4NjU5MGJkOTI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NjYzZjNiNDVhMjc2MTBkNWFkNjBhY2VmNjRhZjI3NGNhMDFkZGUxM2JhYjVm
|
14
|
+
YTg5Zjk4N2I3Njk4MjczMmVjZmY4ZTVhNDkwY2RhNGQzMjkyMWE3OWI5ZDIx
|
15
|
+
NzIwZGE5ZjE5YmE5Y2NkZWI1YmI1YTJiMjQ1NWY3NTI2Y2I1NjQ=
|
@@ -13,6 +13,8 @@
|
|
13
13
|
B869CCEF1814292E00093724 /* ScrollPageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B869CCED1814292E00093724 /* ScrollPageViewController.xib */; };
|
14
14
|
B869CCF31814B62800093724 /* TablePageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B869CCF11814B62800093724 /* TablePageViewController.m */; };
|
15
15
|
B869CCF41814B62800093724 /* TablePageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B869CCF21814B62800093724 /* TablePageViewController.xib */; };
|
16
|
+
B869CD0518175B7500093724 /* LabelAPageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B869CD0318175B7500093724 /* LabelAPageViewController.m */; };
|
17
|
+
B869CD0618175B7500093724 /* LabelAPageViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = B869CD0418175B7500093724 /* LabelAPageViewController.xib */; };
|
16
18
|
B88C11DE17BD550E00A62E9D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B88C11DD17BD550E00A62E9D /* UIKit.framework */; };
|
17
19
|
B88C11E017BD550E00A62E9D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B88C11DF17BD550E00A62E9D /* Foundation.framework */; };
|
18
20
|
B88C11E217BD550E00A62E9D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B88C11E117BD550E00A62E9D /* CoreGraphics.framework */; };
|
@@ -59,6 +61,9 @@
|
|
59
61
|
B869CCF01814B62800093724 /* TablePageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TablePageViewController.h; sourceTree = "<group>"; };
|
60
62
|
B869CCF11814B62800093724 /* TablePageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TablePageViewController.m; sourceTree = "<group>"; };
|
61
63
|
B869CCF21814B62800093724 /* TablePageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TablePageViewController.xib; sourceTree = "<group>"; };
|
64
|
+
B869CD0218175B7500093724 /* LabelAPageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LabelAPageViewController.h; sourceTree = "<group>"; };
|
65
|
+
B869CD0318175B7500093724 /* LabelAPageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LabelAPageViewController.m; sourceTree = "<group>"; };
|
66
|
+
B869CD0418175B7500093724 /* LabelAPageViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LabelAPageViewController.xib; sourceTree = "<group>"; };
|
62
67
|
B88C11DA17BD550E00A62E9D /* RufusApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RufusApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
63
68
|
B88C11DD17BD550E00A62E9D /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
64
69
|
B88C11DF17BD550E00A62E9D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
@@ -228,6 +233,9 @@
|
|
228
233
|
B869CCF01814B62800093724 /* TablePageViewController.h */,
|
229
234
|
B869CCF11814B62800093724 /* TablePageViewController.m */,
|
230
235
|
B869CCF21814B62800093724 /* TablePageViewController.xib */,
|
236
|
+
B869CD0218175B7500093724 /* LabelAPageViewController.h */,
|
237
|
+
B869CD0318175B7500093724 /* LabelAPageViewController.m */,
|
238
|
+
B869CD0418175B7500093724 /* LabelAPageViewController.xib */,
|
231
239
|
);
|
232
240
|
name = PageObjectControllers;
|
233
241
|
sourceTree = "<group>";
|
@@ -315,6 +323,7 @@
|
|
315
323
|
B869CCEF1814292E00093724 /* ScrollPageViewController.xib in Resources */,
|
316
324
|
B8F2F1771802703D0037AD69 /* DisplayedPageViewController.xib in Resources */,
|
317
325
|
B8F2F16C180255FE0037AD69 /* ExistsPageViewController.xib in Resources */,
|
326
|
+
B869CD0618175B7500093724 /* LabelAPageViewController.xib in Resources */,
|
318
327
|
B88C121C17BD55BB00A62E9D /* RufusPageViewController.xib in Resources */,
|
319
328
|
);
|
320
329
|
runOnlyForDeploymentPostprocessing = 0;
|
@@ -355,6 +364,7 @@
|
|
355
364
|
B869CCF31814B62800093724 /* TablePageViewController.m in Sources */,
|
356
365
|
B88C11EE17BD550E00A62E9D /* RUAppDelegate.m in Sources */,
|
357
366
|
B88C11F717BD550E00A62E9D /* RUViewController.m in Sources */,
|
367
|
+
B869CD0518175B7500093724 /* LabelAPageViewController.m in Sources */,
|
358
368
|
B869CCEE1814292E00093724 /* ScrollPageViewController.m in Sources */,
|
359
369
|
B88C121B17BD55BB00A62E9D /* RufusPageViewController.m in Sources */,
|
360
370
|
B8F2F16B180255FE0037AD69 /* ExistsPageViewController.m in Sources */,
|
@@ -0,0 +1,14 @@
|
|
1
|
+
//
|
2
|
+
// LabelAPageViewController.h
|
3
|
+
// RufusApp
|
4
|
+
//
|
5
|
+
// Created by Jeremy Stewart on 10/22/13.
|
6
|
+
// Copyright (c) 2013 Northwoods. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import <UIKit/UIKit.h>
|
10
|
+
|
11
|
+
@interface LabelAPageViewController : UIViewController
|
12
|
+
@property (weak, nonatomic) IBOutlet UILabel *labelALabel;
|
13
|
+
|
14
|
+
@end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
//
|
2
|
+
// LabelAPageViewController.m
|
3
|
+
// RufusApp
|
4
|
+
//
|
5
|
+
// Created by Jeremy Stewart on 10/22/13.
|
6
|
+
// Copyright (c) 2013 Northwoods. All rights reserved.
|
7
|
+
//
|
8
|
+
|
9
|
+
#import "LabelAPageViewController.h"
|
10
|
+
|
11
|
+
@interface LabelAPageViewController ()
|
12
|
+
|
13
|
+
@end
|
14
|
+
|
15
|
+
@implementation LabelAPageViewController
|
16
|
+
|
17
|
+
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
|
18
|
+
{
|
19
|
+
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
20
|
+
if (self) {
|
21
|
+
// Custom initialization
|
22
|
+
}
|
23
|
+
return self;
|
24
|
+
}
|
25
|
+
|
26
|
+
- (void)viewDidLoad
|
27
|
+
{
|
28
|
+
[super viewDidLoad];
|
29
|
+
// Do any additional setup after loading the view from its nib.
|
30
|
+
}
|
31
|
+
|
32
|
+
- (void)didReceiveMemoryWarning
|
33
|
+
{
|
34
|
+
[super didReceiveMemoryWarning];
|
35
|
+
// Dispose of any resources that can be recreated.
|
36
|
+
}
|
37
|
+
|
38
|
+
@end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510" systemVersion="12F45" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES">
|
3
|
+
<dependencies>
|
4
|
+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3742"/>
|
5
|
+
</dependencies>
|
6
|
+
<objects>
|
7
|
+
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="LabelAPageViewController">
|
8
|
+
<connections>
|
9
|
+
<outlet property="labelALabel" destination="FdH-9q-92f" id="lsY-vN-NTN"/>
|
10
|
+
<outlet property="view" destination="2" id="3"/>
|
11
|
+
</connections>
|
12
|
+
</placeholder>
|
13
|
+
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
14
|
+
<view clearsContextBeforeDrawing="NO" contentMode="scaleToFill" id="2">
|
15
|
+
<rect key="frame" x="0.0" y="0.0" width="768" height="1004"/>
|
16
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
17
|
+
<subviews>
|
18
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Label A Page" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="FdH-9q-92f">
|
19
|
+
<rect key="frame" x="232" y="121" width="320" height="21"/>
|
20
|
+
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
21
|
+
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
22
|
+
<nil key="highlightedColor"/>
|
23
|
+
</label>
|
24
|
+
</subviews>
|
25
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
26
|
+
<simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="lightContent"/>
|
27
|
+
</view>
|
28
|
+
</objects>
|
29
|
+
</document>
|
@@ -7,6 +7,7 @@
|
|
7
7
|
//
|
8
8
|
|
9
9
|
#import "TablePageViewController.h"
|
10
|
+
#import "LabelAPageViewController.h"
|
10
11
|
|
11
12
|
@interface TablePageViewController ()
|
12
13
|
|
@@ -19,8 +20,8 @@
|
|
19
20
|
{
|
20
21
|
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
21
22
|
if (self) {
|
23
|
+
|
22
24
|
labels = [self makeLabels];
|
23
|
-
|
24
25
|
}
|
25
26
|
return self;
|
26
27
|
}
|
@@ -45,19 +46,31 @@
|
|
45
46
|
|
46
47
|
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
|
47
48
|
{
|
48
|
-
|
49
|
-
|
50
|
-
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
|
51
|
-
}
|
52
|
-
NSLog(@"%@", [tableView accessibilityLabel]);
|
49
|
+
|
50
|
+
UITableViewCell *cell = nil;
|
53
51
|
|
54
52
|
if ([[tableView accessibilityLabel] isEqualToString:[ascending accessibilityLabel]]) {
|
53
|
+
cell = [tableView dequeueReusableCellWithIdentifier:@"Ascending"];
|
54
|
+
if (!cell) {
|
55
|
+
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Ascending"];
|
56
|
+
}
|
55
57
|
UILabel *text = [labels objectAtIndex:[indexPath row]];
|
56
58
|
[[cell textLabel] setText:[text text]];
|
57
59
|
} else if ([[tableView accessibilityLabel] isEqualToString:[descending accessibilityLabel]]) {
|
60
|
+
cell = [tableView dequeueReusableCellWithIdentifier:@"Descending"];
|
61
|
+
if (!cell) {
|
62
|
+
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Descending"];
|
63
|
+
}
|
64
|
+
|
58
65
|
UILabel *text = [labels objectAtIndex:([labels count] - 1) - [indexPath row]];
|
59
66
|
[[cell textLabel] setText:[text text]];
|
60
67
|
} else {
|
68
|
+
cell = [tableView dequeueReusableCellWithIdentifier:@"Unsorted"];
|
69
|
+
if (!cell) {
|
70
|
+
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Unsorted"];
|
71
|
+
}
|
72
|
+
|
73
|
+
|
61
74
|
if ([indexPath row] % 2 == 0) {
|
62
75
|
[[cell textLabel] setText:@"x"];
|
63
76
|
} else {
|
@@ -69,6 +82,19 @@
|
|
69
82
|
return cell;
|
70
83
|
}
|
71
84
|
|
85
|
+
|
86
|
+
|
87
|
+
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
88
|
+
{
|
89
|
+
UILabel *label = [labels objectAtIndex:[indexPath row]];
|
90
|
+
NSLog(@"Index Path row %d", [indexPath row]);
|
91
|
+
NSLog(@"Label text is: %@", [label text]);
|
92
|
+
if ([[label text] isEqualToString:@"a"]) {
|
93
|
+
LabelAPageViewController *labelAPageViewController = [[LabelAPageViewController alloc] init];
|
94
|
+
[[self navigationController] pushViewController:labelAPageViewController animated:YES];
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
72
98
|
-(NSArray *) makeLabels
|
73
99
|
{
|
74
100
|
|
@@ -105,4 +131,6 @@
|
|
105
131
|
}
|
106
132
|
|
107
133
|
|
134
|
+
- (IBAction)toButtonTables:(id)sender {
|
135
|
+
}
|
108
136
|
@end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
2
|
-
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510" systemVersion="12F45" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none"
|
2
|
+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.iPad.XIB" version="3.0" toolsVersion="4510" systemVersion="12F45" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none">
|
3
3
|
<dependencies>
|
4
4
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3742"/>
|
5
5
|
</dependencies>
|
6
6
|
<objects>
|
7
7
|
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="TablePageViewController">
|
8
8
|
<connections>
|
9
|
-
<outlet property="ascending" destination="
|
9
|
+
<outlet property="ascending" destination="zsU-Kt-7ug" id="HVS-dR-COH"/>
|
10
10
|
<outlet property="descending" destination="bFd-cR-AnT" id="eBV-Hh-9s9"/>
|
11
11
|
<outlet property="notSorted" destination="uNl-JB-Y7y" id="qUm-f4-Dvn"/>
|
12
12
|
<outlet property="sortedLabel" destination="y3W-to-ma5" id="BFf-Dd-ctn"/>
|
@@ -19,31 +19,22 @@
|
|
19
19
|
<rect key="frame" x="0.0" y="0.0" width="768" height="1004"/>
|
20
20
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
21
21
|
<subviews>
|
22
|
-
<
|
23
|
-
<rect key="frame" x="42" y="162" width="150" height="467"/>
|
24
|
-
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
25
|
-
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
26
|
-
<connections>
|
27
|
-
<outlet property="dataSource" destination="-1" id="LFA-Si-hjw"/>
|
28
|
-
<outlet property="delegate" destination="-1" id="mZE-tT-AJ1"/>
|
29
|
-
</connections>
|
30
|
-
</tableView>
|
31
|
-
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Ascending" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="y3W-to-ma5">
|
22
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Ascending" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="y3W-to-ma5">
|
32
23
|
<rect key="frame" x="69" y="114" width="81" height="21"/>
|
33
24
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
34
25
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
35
26
|
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
36
27
|
<nil key="highlightedColor"/>
|
37
28
|
</label>
|
38
|
-
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251"
|
29
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Unsorted" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="SsI-ER-Hih">
|
39
30
|
<rect key="frame" x="294" y="114" width="71" height="21"/>
|
40
31
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
41
32
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
42
33
|
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
43
34
|
<nil key="highlightedColor"/>
|
44
35
|
</label>
|
45
|
-
<tableView clipsSubviews="YES" contentMode="scaleToFill"
|
46
|
-
<rect key="frame" x="503" y="162" width="150" height="
|
36
|
+
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="bFd-cR-AnT">
|
37
|
+
<rect key="frame" x="503" y="162" width="150" height="460"/>
|
47
38
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
48
39
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
49
40
|
<connections>
|
@@ -51,14 +42,14 @@
|
|
51
42
|
<outlet property="delegate" destination="-1" id="Yuo-gb-oXe"/>
|
52
43
|
</connections>
|
53
44
|
</tableView>
|
54
|
-
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251"
|
45
|
+
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Descending" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="D79-jP-phq">
|
55
46
|
<rect key="frame" x="543" y="114" width="92" height="21"/>
|
56
47
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
57
48
|
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
58
49
|
<nil key="highlightedColor"/>
|
59
50
|
</label>
|
60
|
-
<tableView clipsSubviews="YES" contentMode="scaleToFill"
|
61
|
-
<rect key="frame" x="227" y="
|
51
|
+
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="uNl-JB-Y7y">
|
52
|
+
<rect key="frame" x="227" y="162" width="228" height="460"/>
|
62
53
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
63
54
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
64
55
|
<connections>
|
@@ -66,6 +57,15 @@
|
|
66
57
|
<outlet property="delegate" destination="-1" id="LLv-JY-nfq"/>
|
67
58
|
</connections>
|
68
59
|
</tableView>
|
60
|
+
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="zsU-Kt-7ug">
|
61
|
+
<rect key="frame" x="53" y="162" width="150" height="460"/>
|
62
|
+
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
63
|
+
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
64
|
+
<connections>
|
65
|
+
<outlet property="dataSource" destination="-1" id="Cea-CZ-u8X"/>
|
66
|
+
<outlet property="delegate" destination="-1" id="9mT-IH-0ks"/>
|
67
|
+
</connections>
|
68
|
+
</tableView>
|
69
69
|
</subviews>
|
70
70
|
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
71
71
|
<accessibility key="accessibilityConfiguration" label="tableView"/>
|
data/features/driver.feature
CHANGED
@@ -14,9 +14,13 @@ Feature: Interacting with a view
|
|
14
14
|
When I rotate the app to "landscape"
|
15
15
|
And I rotate the app to "portrait"
|
16
16
|
Then the app is in the "portrait" orientation
|
17
|
-
|
17
|
+
|
18
18
|
Scenario: Typing into a text field
|
19
19
|
Given I am on the "HomePage"
|
20
20
|
When I type "BooYah" into the text field defined "text_box"
|
21
21
|
Then the view marked "text_box" has the text "BooYah"
|
22
22
|
|
23
|
+
Scenario: Taking a screenshot
|
24
|
+
Given I have created a valid appium driver for iOS
|
25
|
+
When I take a screenshot called "coolShot.png"
|
26
|
+
Then then the file "coolShot.png" exists
|
@@ -22,4 +22,10 @@ When(/^I type "([^"]*)" into the text field defined "([^"]*)"$/) do |keys, which
|
|
22
22
|
end
|
23
23
|
Then(/^the view marked "([^"]*)" has the text "([^"]*)"$/) do |which, keys|
|
24
24
|
on(HomePage).send("view_#{which}_view").text.should eq keys
|
25
|
+
end
|
26
|
+
When(/^I take a screenshot called "([^"]*)"$/) do |name|
|
27
|
+
$driver.screenshot name
|
28
|
+
end
|
29
|
+
Then(/^then the file "([^"]*)" exists$/) do |name|
|
30
|
+
File.exists?(name).should be_true
|
25
31
|
end
|
@@ -11,4 +11,10 @@ Then(/^I can see all the children for the view defined "([^"]*)"$/) do |which|
|
|
11
11
|
children[5].attribute('name').should eq 'c'
|
12
12
|
children[6].attribute('name').should eq 'd'
|
13
13
|
children[7].attribute('name').should eq 'e'
|
14
|
+
end
|
15
|
+
Given(/^I select index "([^"]*)" of the "([^"]*)" table$/) do |index, table|
|
16
|
+
on(TablePage).send("view_#{table}_view").click_on index.to_i
|
17
|
+
end
|
18
|
+
Given(/^I select the label "([^"]*)" in the "([^"]*)" table$/) do |which, table|
|
19
|
+
on(TablePage).send("view_#{table}_view").click_on which
|
14
20
|
end
|
data/features/support/hooks.rb
CHANGED
data/features/table.feature
CHANGED
@@ -10,4 +10,12 @@ Feature: dealing with tables
|
|
10
10
|
And I see the table defined "unsorted" is not sorted
|
11
11
|
|
12
12
|
Scenario: Getting the child elements
|
13
|
-
Then I can see all the children for the view defined "ascending"
|
13
|
+
Then I can see all the children for the view defined "ascending"
|
14
|
+
|
15
|
+
Scenario: Selecting an item by index
|
16
|
+
Given I select index "4" of the "ascending" table
|
17
|
+
Then I am on the "LabelAPage"
|
18
|
+
|
19
|
+
Scenario: Selecting and item by label
|
20
|
+
Given I select the label "a" in the "ascending" table
|
21
|
+
Then I am on the "LabelAPage"
|
@@ -19,6 +19,15 @@ module Rufus
|
|
19
19
|
def sorted_descending?
|
20
20
|
descending? children
|
21
21
|
end
|
22
|
+
#start with this method
|
23
|
+
def click_on(what)
|
24
|
+
if what.is_a? Integer
|
25
|
+
child_elements = children
|
26
|
+
child_elements[what - 1].click if what - 1 <= child_elements.count
|
27
|
+
else
|
28
|
+
click_label what
|
29
|
+
end
|
30
|
+
end
|
22
31
|
|
23
32
|
private
|
24
33
|
|
@@ -44,6 +53,12 @@ module Rufus
|
|
44
53
|
elements.map{|element| element.attribute 'name'}
|
45
54
|
end
|
46
55
|
|
56
|
+
def click_label(which)
|
57
|
+
children.each do |child|
|
58
|
+
child.click if child.attribute('name').eql? which
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
47
62
|
end
|
48
63
|
end
|
49
64
|
end
|
data/lib/rufus/driver.rb
CHANGED
data/rufus.gemspec
CHANGED
@@ -336,6 +336,12 @@ describe Rufus::Driver do
|
|
336
336
|
@driver.page_source.should eq("some page data")
|
337
337
|
end
|
338
338
|
|
339
|
+
it 'can take a screenshot of the page' do
|
340
|
+
Rufus::Drivers::IOS_Simulator.should_receive(:for).with(@config, url).and_return(mock_driver)
|
341
|
+
mock_driver.should_receive(:save_screenshot).with('theShot.png')
|
342
|
+
@driver.screenshot 'theShot.png'
|
343
|
+
end
|
344
|
+
|
339
345
|
context 'getting element lists by class' do
|
340
346
|
|
341
347
|
let(:mock_list){'a mock list of elements'}
|
data/spec/table_spec.rb
CHANGED
@@ -30,5 +30,22 @@ describe Rufus::Accessors::Table do
|
|
30
30
|
table.sorted?.should be_true
|
31
31
|
end
|
32
32
|
end
|
33
|
+
|
34
|
+
context 'selecting elements' do
|
35
|
+
|
36
|
+
let(:mock_element){'some element'}
|
37
|
+
|
38
|
+
it 'can select a table item by index' do
|
39
|
+
mock_child_elements.should_receive(:[]).with(1).and_return(mock_element)
|
40
|
+
mock_child_elements.should_receive(:count).and_return(1)
|
41
|
+
mock_element.should_receive(:click)
|
42
|
+
table.click_on 2
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'can select a table item by label' do
|
46
|
+
mock_child_elements.should_receive(:each)
|
47
|
+
table.click_on 'labelName'
|
48
|
+
end
|
49
|
+
end
|
33
50
|
end
|
34
51
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rufus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.7'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Stewart
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-10-
|
11
|
+
date: 2013-10-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: page_navigation
|
@@ -295,6 +295,9 @@ files:
|
|
295
295
|
- RufusApp/RufusApp/Frank/Frankified_build/Applications/RufusApp.app/embedded.mobileprovision
|
296
296
|
- RufusApp/RufusApp/Frank/Frankified_build/Applications/RufusApp.app/en.lproj/InfoPlist.strings
|
297
297
|
- RufusApp/RufusApp/Frank/Frankified_build/Applications/RufusApp.app/en.lproj/RUViewController.nib
|
298
|
+
- RufusApp/RufusApp/LabelAPageViewController.h
|
299
|
+
- RufusApp/RufusApp/LabelAPageViewController.m
|
300
|
+
- RufusApp/RufusApp/LabelAPageViewController.xib
|
298
301
|
- RufusApp/RufusApp/RUAppDelegate.h
|
299
302
|
- RufusApp/RufusApp/RUAppDelegate.m
|
300
303
|
- RufusApp/RufusApp/RUViewController.h
|
@@ -339,6 +342,7 @@ files:
|
|
339
342
|
- features/support/screens/enabled_page.rb
|
340
343
|
- features/support/screens/exists_page.rb
|
341
344
|
- features/support/screens/home_page.rb
|
345
|
+
- features/support/screens/label_a_page.rb
|
342
346
|
- features/support/screens/rufus_page.rb
|
343
347
|
- features/support/screens/scroll_page.rb
|
344
348
|
- features/support/screens/table_page.rb
|