mirror of
https://github.com/appium/appium.git
synced 2026-05-24 12:58:49 -05:00
@@ -793,6 +793,10 @@ Android.prototype.swipe = function(startX, startY, endX, endY, duration, touchCo
|
||||
}
|
||||
};
|
||||
|
||||
Android.prototype.rotate = function(x, y, radius, rotation, duration, touchCount, elId, cb) {
|
||||
cb(new NotYetImplementedError(), null);
|
||||
};
|
||||
|
||||
Android.prototype.flick = function(startX, startY, endX, endY, touchCount, elId, cb) {
|
||||
if (startX === 'null') {
|
||||
startX = 0.5;
|
||||
|
||||
@@ -470,6 +470,30 @@ exports.mobileSwipe = function(req, res) {
|
||||
}
|
||||
};
|
||||
|
||||
exports.mobileRotation = function(req, res) {
|
||||
req.body = _.defaults(req.body, {
|
||||
x: 0.5
|
||||
, y: 0.5
|
||||
, radius: 0.5
|
||||
, rotation: 3.14159265359
|
||||
, touchCount: 2
|
||||
, duration: 1
|
||||
, element: null
|
||||
});
|
||||
var element = req.body.element
|
||||
, duration = req.body.duration
|
||||
, x = req.body.x
|
||||
, y = req.body.y
|
||||
, radius = req.body.radius
|
||||
, touchCount = req.body.touchCount
|
||||
, rotation = req.body.rotation;
|
||||
|
||||
if(checkMissingParams(res, {x: x, y: y})) {
|
||||
req.device.rotate(x, y, radius, rotation, duration, touchCount,
|
||||
element, getResponseHandler(req, res));
|
||||
}
|
||||
};
|
||||
|
||||
exports.mobileScrollTo = function(req, res) {
|
||||
req.body = _.defaults(req.body, {
|
||||
element: null
|
||||
@@ -968,6 +992,7 @@ var mobileCmdMap = {
|
||||
, 'isAppInstalled': exports.isAppInstalled
|
||||
, 'launchApp': exports.launchApp
|
||||
, 'closeApp': exports.closeApp
|
||||
, 'rotate': exports.mobileRotation
|
||||
, 'longClick' : exports.touchLongClick
|
||||
};
|
||||
|
||||
|
||||
+14
-1
@@ -248,7 +248,7 @@ IOS.prototype.installToRealDevice = function (cb) {
|
||||
async.waterfall([
|
||||
function (cb) { d.isInstalled(me.bundleId, cb); },
|
||||
function (installed, cb) {
|
||||
if (installed) {
|
||||
if (installed) {
|
||||
logger.info("Bundle found on device, removing before reinstalling.");
|
||||
d.remove(me.bundleId, cb);
|
||||
} else {
|
||||
@@ -1517,6 +1517,19 @@ IOS.prototype.swipe = function(startX, startY, endX, endY, duration, touchCount,
|
||||
});
|
||||
};
|
||||
|
||||
IOS.prototype.rotate = function(x, y, radius, rotation, duration, touchCount, elId, cb) {
|
||||
var command;
|
||||
var location = {'x' : x, 'y' : y};
|
||||
var options = {'duration' : duration, 'radius' : radius, 'rotation' : rotation, 'touchCount' : touchCount};
|
||||
if (elId) {
|
||||
command = "au.getElement('" + elId + "').rotateWithOptions(" + JSON.stringify(location) +
|
||||
"," + JSON.stringify(options) + ")";
|
||||
this.proxy(command, cb);
|
||||
} else {
|
||||
this.proxy("target.rotateWithOptions("+ JSON.stringify(location) + "," + JSON.stringify(options) + ")", cb);
|
||||
}
|
||||
};
|
||||
|
||||
IOS.prototype.flick = function(startX, startY, endX, endY, touchCount, elId, cb) {
|
||||
var command;
|
||||
if (elId) {
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:RobotCalibration.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
@@ -0,0 +1,18 @@
|
||||
//
|
||||
// GestureTestViewController.h
|
||||
// TestApp
|
||||
//
|
||||
// Created by ThinkSys- Amit on 12/07/13.
|
||||
//
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <MapKit/MapKit.h>
|
||||
|
||||
@interface GestureTestViewController : UIViewController<UIGestureRecognizerDelegate>
|
||||
@property (retain, nonatomic) IBOutlet MKMapView *mapView;
|
||||
|
||||
|
||||
- (IBAction)handleRotation:(UIRotationGestureRecognizer*)sender;
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,48 @@
|
||||
//
|
||||
// GestureTestViewController.m
|
||||
// TestApp
|
||||
//
|
||||
// Created by ThinkSys- Amit on 12/07/13.
|
||||
//
|
||||
//
|
||||
|
||||
#import "GestureTestViewController.h"
|
||||
|
||||
@interface GestureTestViewController ()
|
||||
|
||||
@end
|
||||
|
||||
@implementation GestureTestViewController
|
||||
|
||||
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
|
||||
{
|
||||
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
|
||||
if (self) {
|
||||
// Custom initialization
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
// Do any additional setup after loading the view from its nib.
|
||||
}
|
||||
|
||||
- (void)didReceiveMemoryWarning
|
||||
{
|
||||
[super didReceiveMemoryWarning];
|
||||
// Dispose of any resources that can be recreated.
|
||||
}
|
||||
|
||||
- (IBAction)handleRotation:(UIRotationGestureRecognizer*)sender
|
||||
{
|
||||
NSLog(@"Rotation Starts");
|
||||
sender.view.transform = CGAffineTransformRotate(sender.view.transform, sender.rotation);
|
||||
sender.rotation = 0;
|
||||
}
|
||||
- (void)dealloc {
|
||||
[_mapView release];
|
||||
[super dealloc];
|
||||
}
|
||||
@end
|
||||
@@ -0,0 +1,334 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1552</int>
|
||||
<string key="IBDocument.SystemVersion">11G63b</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.51</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">2083</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>IBMKMapView</string>
|
||||
<string>IBNSLayoutConstraint</string>
|
||||
<string>IBProxyObject</string>
|
||||
<string>IBUIRotationGestureRecognizer</string>
|
||||
<string>IBUIView</string>
|
||||
</array>
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
</array>
|
||||
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||
<integer value="1" key="NS.object.0"/>
|
||||
</object>
|
||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||
<object class="IBProxyObject" id="372490531">
|
||||
<string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBProxyObject" id="975951072">
|
||||
<string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIView" id="191373211">
|
||||
<reference key="NSNextResponder"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<array class="NSMutableArray" key="NSSubviews">
|
||||
<object class="IBMKMapView" id="59640690">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">274</int>
|
||||
<string key="NSFrame">{{35, 83}, {250, 250}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIClipsSubviews">YES</bool>
|
||||
<bool key="IBUIMultipleTouchEnabled">YES</bool>
|
||||
<array key="IBUIGestureRecognizers" id="0"/>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBMKShowsUserLocation">YES</bool>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 20}, {320, 548}}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="59640690"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
<bytes key="NSWhite">MQA</bytes>
|
||||
<object class="NSColorSpace" key="NSCustomColorSpace">
|
||||
<int key="NSID">2</int>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
|
||||
<object class="IBUIScreenMetrics" key="IBUISimulatedDestinationMetrics">
|
||||
<string key="IBUISimulatedSizeMetricsClass">IBUIScreenMetrics</string>
|
||||
<object class="NSMutableDictionary" key="IBUINormalizedOrientationToSizeMap">
|
||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||
<array key="dict.sortedKeys">
|
||||
<integer value="1"/>
|
||||
<integer value="3"/>
|
||||
</array>
|
||||
<array key="dict.values">
|
||||
<string>{320, 568}</string>
|
||||
<string>{568, 320}</string>
|
||||
</array>
|
||||
</object>
|
||||
<string key="IBUITargetRuntime">IBCocoaTouchFramework</string>
|
||||
<string key="IBUIDisplayName">Retina 4 Full Screen</string>
|
||||
<int key="IBUIType">2</int>
|
||||
</object>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
</object>
|
||||
<object class="IBUIRotationGestureRecognizer" id="322244011"/>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">view</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="191373211"/>
|
||||
</object>
|
||||
<int key="connectionID">3</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">mapView</string>
|
||||
<reference key="source" ref="372490531"/>
|
||||
<reference key="destination" ref="59640690"/>
|
||||
</object>
|
||||
<int key="connectionID">24</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletCollectionConnection" key="connection">
|
||||
<string key="label">gestureRecognizers</string>
|
||||
<reference key="source" ref="59640690"/>
|
||||
<reference key="destination" ref="322244011"/>
|
||||
<string key="cachedDesigntimeCollectionClassName">NSArray</string>
|
||||
<bool key="addsContentToExistingCollection">YES</bool>
|
||||
</object>
|
||||
<int key="connectionID">15</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">handleRotation:</string>
|
||||
<reference key="source" ref="322244011"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
</object>
|
||||
<int key="connectionID">16</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="322244011"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
</object>
|
||||
<int key="connectionID">25</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">0</int>
|
||||
<reference key="object" ref="0"/>
|
||||
<reference key="children" ref="1000"/>
|
||||
<nil key="parent"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">1</int>
|
||||
<reference key="object" ref="191373211"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<object class="IBNSLayoutConstraint" id="275850515">
|
||||
<reference key="firstItem" ref="59640690"/>
|
||||
<int key="firstAttribute">9</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="191373211"/>
|
||||
<int key="secondAttribute">9</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBLayoutConstant" key="constant">
|
||||
<double key="value">0.0</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="191373211"/>
|
||||
<int key="scoringType">5</int>
|
||||
<float key="scoringTypeFloat">22</float>
|
||||
<int key="contentType">2</int>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="956516549">
|
||||
<reference key="firstItem" ref="59640690"/>
|
||||
<int key="firstAttribute">3</int>
|
||||
<int key="relation">0</int>
|
||||
<reference key="secondItem" ref="191373211"/>
|
||||
<int key="secondAttribute">3</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBLayoutConstant" key="constant">
|
||||
<double key="value">83</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="191373211"/>
|
||||
<int key="scoringType">3</int>
|
||||
<float key="scoringTypeFloat">9</float>
|
||||
<int key="contentType">3</int>
|
||||
</object>
|
||||
<reference ref="59640690"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-1</int>
|
||||
<reference key="object" ref="372490531"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">File's Owner</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">-2</int>
|
||||
<reference key="object" ref="975951072"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">4</int>
|
||||
<reference key="object" ref="59640690"/>
|
||||
<array class="NSMutableArray" key="children">
|
||||
<object class="IBNSLayoutConstraint" id="127972450">
|
||||
<reference key="firstItem" ref="59640690"/>
|
||||
<int key="firstAttribute">8</int>
|
||||
<int key="relation">0</int>
|
||||
<nil key="secondItem"/>
|
||||
<int key="secondAttribute">0</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBLayoutConstant" key="constant">
|
||||
<double key="value">250</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="59640690"/>
|
||||
<int key="scoringType">3</int>
|
||||
<float key="scoringTypeFloat">9</float>
|
||||
<int key="contentType">1</int>
|
||||
</object>
|
||||
<object class="IBNSLayoutConstraint" id="724525108">
|
||||
<reference key="firstItem" ref="59640690"/>
|
||||
<int key="firstAttribute">7</int>
|
||||
<int key="relation">0</int>
|
||||
<nil key="secondItem"/>
|
||||
<int key="secondAttribute">0</int>
|
||||
<float key="multiplier">1</float>
|
||||
<object class="IBLayoutConstant" key="constant">
|
||||
<double key="value">250</double>
|
||||
</object>
|
||||
<float key="priority">1000</float>
|
||||
<reference key="containingView" ref="59640690"/>
|
||||
<int key="scoringType">3</int>
|
||||
<float key="scoringTypeFloat">9</float>
|
||||
<int key="contentType">1</int>
|
||||
</object>
|
||||
</array>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">14</int>
|
||||
<reference key="object" ref="322244011"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">18</int>
|
||||
<reference key="object" ref="724525108"/>
|
||||
<reference key="parent" ref="59640690"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">20</int>
|
||||
<reference key="object" ref="127972450"/>
|
||||
<reference key="parent" ref="59640690"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">22</int>
|
||||
<reference key="object" ref="956516549"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">23</int>
|
||||
<reference key="object" ref="275850515"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
<string key="-1.CustomClassName">GestureTestViewController</string>
|
||||
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="-2.CustomClassName">UIResponder</string>
|
||||
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<array class="NSMutableArray" key="1.IBViewMetadataConstraints">
|
||||
<reference ref="956516549"/>
|
||||
<reference ref="275850515"/>
|
||||
</array>
|
||||
<string key="14.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<array class="NSMutableArray" key="4.IBViewMetadataConstraints">
|
||||
<reference ref="724525108"/>
|
||||
<reference ref="127972450"/>
|
||||
</array>
|
||||
<boolean value="NO" key="4.IBViewMetadataTranslatesAutoresizingMaskIntoConstraints"/>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">25</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">GestureTestViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">handleRotation:</string>
|
||||
<string key="NS.object.0">UIRotationGestureRecognizer</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">handleRotation:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">handleRotation:</string>
|
||||
<string key="candidateClassName">UIRotationGestureRecognizer</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="outlets">
|
||||
<string key="NS.key.0">mapView</string>
|
||||
<string key="NS.object.0">MKMapView</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<string key="NS.key.0">mapView</string>
|
||||
<object class="IBToOneOutletInfo" key="NS.object.0">
|
||||
<string key="name">mapView</string>
|
||||
<string key="candidateClassName">MKMapView</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/GestureTestViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">NSLayoutConstraint</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/NSLayoutConstraint.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||
<bool key="IBDocument.UseAutolayout">YES</bool>
|
||||
<string key="IBCocoaTouchPluginVersion">2083</string>
|
||||
</data>
|
||||
</archive>
|
||||
@@ -20,12 +20,14 @@
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "GestureTestViewController.h"
|
||||
|
||||
@interface MyViewControllerViewController : UIViewController <UITextFieldDelegate>
|
||||
@property (retain, nonatomic) IBOutlet UITextField *firstArg;
|
||||
@property (retain, nonatomic) IBOutlet UITextField *secondArg;
|
||||
@property (retain, nonatomic) IBOutlet UILabel *answerLabel;
|
||||
@property (retain, nonatomic) IBOutlet UIButton *computeSumButton;
|
||||
- (IBAction)testGesture:(id)sender;
|
||||
|
||||
- (IBAction)computeAction:(id)sender;
|
||||
- (IBAction)showAlert:(id)sender;
|
||||
|
||||
@@ -81,6 +81,12 @@
|
||||
[computeSumButton release];
|
||||
[super dealloc];
|
||||
}
|
||||
- (IBAction)testGesture:(id)sender
|
||||
{
|
||||
GestureTestViewController *test = [[GestureTestViewController alloc] initWithNibName:@"GestureTestViewController" bundle:nil];
|
||||
[self presentViewController:test animated:YES completion:NULL];
|
||||
}
|
||||
|
||||
- (IBAction)computeAction:(id)sender {
|
||||
int a = [[firstArg text] intValue];
|
||||
int b = [[secondArg text] intValue];
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
|
||||
<data>
|
||||
<int key="IBDocument.SystemTarget">1552</int>
|
||||
<string key="IBDocument.SystemVersion">12D78</string>
|
||||
<string key="IBDocument.SystemVersion">11G63b</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">3084</string>
|
||||
<string key="IBDocument.AppKitVersion">1187.37</string>
|
||||
<string key="IBDocument.HIToolboxVersion">626.00</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.51</string>
|
||||
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||
<string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="NS.object.0">2083</string>
|
||||
@@ -43,7 +43,6 @@
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{94, 122}, {113, 37}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="345291070"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
@@ -82,7 +81,6 @@
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{102, 38}, {97, 31}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1060849759"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
@@ -121,7 +119,6 @@
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{102, 77}, {97, 31}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="1032139202"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
@@ -151,7 +148,6 @@
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{129, 167}, {42, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="706685511"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
@@ -186,7 +182,6 @@
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{94, 208}, {113, 44}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="437918133"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
@@ -209,7 +204,6 @@
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{122, 259}, {56, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="373721015"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
@@ -233,7 +227,6 @@
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{91, 288}, {118, 23}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="924216972"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
@@ -250,7 +243,6 @@
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{122, 318}, {56, 21}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="380300170"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
@@ -274,8 +266,6 @@
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{83, 347}, {136, 44}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
@@ -293,10 +283,30 @@
|
||||
<reference key="IBUIFontDescription" ref="543225109"/>
|
||||
<reference key="IBUIFont" ref="871252260"/>
|
||||
</object>
|
||||
<object class="IBUIButton" id="809824375">
|
||||
<reference key="NSNextResponder" ref="191373211"/>
|
||||
<int key="NSvFlags">292</int>
|
||||
<string key="NSFrame">{{93, 397}, {116, 44}}</string>
|
||||
<reference key="NSSuperview" ref="191373211"/>
|
||||
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||
<bool key="IBUIOpaque">NO</bool>
|
||||
<string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<int key="IBUIContentHorizontalAlignment">0</int>
|
||||
<int key="IBUIContentVerticalAlignment">0</int>
|
||||
<int key="IBUIButtonType">1</int>
|
||||
<string key="IBUINormalTitle">Test Gesture</string>
|
||||
<reference key="IBUIHighlightedTitleColor" ref="117515812"/>
|
||||
<object class="NSColor" key="IBUINormalTitleColor">
|
||||
<int key="NSColorSpace">1</int>
|
||||
<bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
|
||||
</object>
|
||||
<reference key="IBUINormalTitleShadowColor" ref="877481141"/>
|
||||
<reference key="IBUIFontDescription" ref="543225109"/>
|
||||
<reference key="IBUIFont" ref="871252260"/>
|
||||
</object>
|
||||
</array>
|
||||
<string key="NSFrame">{{0, 20}, {320, 460}}</string>
|
||||
<reference key="NSSuperview"/>
|
||||
<reference key="NSWindow"/>
|
||||
<reference key="NSNextKeyView" ref="331326436"/>
|
||||
<object class="NSColor" key="IBUIBackgroundColor">
|
||||
<int key="NSColorSpace">3</int>
|
||||
@@ -367,6 +377,15 @@
|
||||
</object>
|
||||
<int key="connectionID">18</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBCocoaTouchEventConnection" key="connection">
|
||||
<string key="label">testGesture:</string>
|
||||
<reference key="source" ref="809824375"/>
|
||||
<reference key="destination" ref="372490531"/>
|
||||
<int key="IBEventType">7</int>
|
||||
</object>
|
||||
<int key="connectionID">26</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
<array key="orderedObjects">
|
||||
@@ -389,6 +408,7 @@
|
||||
<reference ref="437918133"/>
|
||||
<reference ref="924216972"/>
|
||||
<reference ref="380300170"/>
|
||||
<reference ref="809824375"/>
|
||||
</array>
|
||||
<reference key="parent" ref="0"/>
|
||||
</object>
|
||||
@@ -448,6 +468,11 @@
|
||||
<reference key="object" ref="380300170"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">25</int>
|
||||
<reference key="object" ref="809824375"/>
|
||||
<reference key="parent" ref="191373211"/>
|
||||
</object>
|
||||
</array>
|
||||
</object>
|
||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||
@@ -475,6 +500,7 @@
|
||||
</object>
|
||||
</object>
|
||||
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
|
||||
@@ -484,58 +510,9 @@
|
||||
<nil key="activeLocalization"/>
|
||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||
<nil key="sourceID"/>
|
||||
<int key="maxID">24</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">MyViewControllerViewController</string>
|
||||
<string key="superclassName">UIViewController</string>
|
||||
<dictionary class="NSMutableDictionary" key="actions">
|
||||
<string key="computeAction:">id</string>
|
||||
<string key="showAlert:">id</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||
<object class="IBActionInfo" key="computeAction:">
|
||||
<string key="name">computeAction:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
<object class="IBActionInfo" key="showAlert:">
|
||||
<string key="name">showAlert:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="outlets">
|
||||
<string key="answerLabel">UILabel</string>
|
||||
<string key="computeSumButton">UIButton</string>
|
||||
<string key="firstArg">UITextField</string>
|
||||
<string key="secondArg">UITextField</string>
|
||||
</dictionary>
|
||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||
<object class="IBToOneOutletInfo" key="answerLabel">
|
||||
<string key="name">answerLabel</string>
|
||||
<string key="candidateClassName">UILabel</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="computeSumButton">
|
||||
<string key="name">computeSumButton</string>
|
||||
<string key="candidateClassName">UIButton</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="firstArg">
|
||||
<string key="name">firstArg</string>
|
||||
<string key="candidateClassName">UITextField</string>
|
||||
</object>
|
||||
<object class="IBToOneOutletInfo" key="secondArg">
|
||||
<string key="name">secondArg</string>
|
||||
<string key="candidateClassName">UITextField</string>
|
||||
</object>
|
||||
</dictionary>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/MyViewControllerViewController.h</string>
|
||||
</object>
|
||||
</object>
|
||||
</array>
|
||||
<int key="maxID">26</int>
|
||||
</object>
|
||||
<object class="IBClassDescriber" key="IBDocument.Classes"/>
|
||||
<int key="IBDocument.localizationMode">0</int>
|
||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string>
|
||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
255BAFEC1790223300DE7158 /* GestureTestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 255BAFEA1790223300DE7158 /* GestureTestViewController.m */; };
|
||||
255BAFED1790223300DE7158 /* GestureTestViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 255BAFEB1790223300DE7158 /* GestureTestViewController.xib */; };
|
||||
255BAFEF1790249F00DE7158 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 255BAFEE1790249F00DE7158 /* MapKit.framework */; };
|
||||
3647AE1315CA0082006F70D6 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3647AE1215CA0082006F70D6 /* UIKit.framework */; };
|
||||
3647AE1515CA0082006F70D6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3647AE1415CA0082006F70D6 /* Foundation.framework */; };
|
||||
3647AE1715CA0082006F70D6 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3647AE1615CA0082006F70D6 /* CoreGraphics.framework */; };
|
||||
@@ -19,6 +22,10 @@
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
255BAFE91790223300DE7158 /* GestureTestViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GestureTestViewController.h; sourceTree = "<group>"; };
|
||||
255BAFEA1790223300DE7158 /* GestureTestViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GestureTestViewController.m; sourceTree = "<group>"; };
|
||||
255BAFEB1790223300DE7158 /* GestureTestViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GestureTestViewController.xib; sourceTree = "<group>"; };
|
||||
255BAFEE1790249F00DE7158 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
|
||||
3647AE0E15CA0082006F70D6 /* TestApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = TestApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
3647AE1215CA0082006F70D6 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
3647AE1415CA0082006F70D6 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
@@ -40,6 +47,7 @@
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
255BAFEF1790249F00DE7158 /* MapKit.framework in Frameworks */,
|
||||
3647AE1315CA0082006F70D6 /* UIKit.framework in Frameworks */,
|
||||
3647AE1515CA0082006F70D6 /* Foundation.framework in Frameworks */,
|
||||
3647AE1715CA0082006F70D6 /* CoreGraphics.framework in Frameworks */,
|
||||
@@ -52,6 +60,7 @@
|
||||
3647AE0315CA0082006F70D6 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
255BAFEE1790249F00DE7158 /* MapKit.framework */,
|
||||
36FEEFED1656DD6000100C04 /* Default-568h@2x.png */,
|
||||
3647AE1815CA0082006F70D6 /* TestApp */,
|
||||
3647AE1115CA0082006F70D6 /* Frameworks */,
|
||||
@@ -86,6 +95,9 @@
|
||||
3647AE2915CA00D5006F70D6 /* MyViewControllerViewController.h */,
|
||||
3647AE2A15CA00D5006F70D6 /* MyViewControllerViewController.m */,
|
||||
3647AE2B15CA00D5006F70D6 /* MyViewControllerViewController.xib */,
|
||||
255BAFE91790223300DE7158 /* GestureTestViewController.h */,
|
||||
255BAFEA1790223300DE7158 /* GestureTestViewController.m */,
|
||||
255BAFEB1790223300DE7158 /* GestureTestViewController.xib */,
|
||||
);
|
||||
name = TestApp;
|
||||
path = "Test App 2";
|
||||
@@ -156,6 +168,7 @@
|
||||
3647AE1D15CA0082006F70D6 /* InfoPlist.strings in Resources */,
|
||||
3647AE2D15CA00D5006F70D6 /* MyViewControllerViewController.xib in Resources */,
|
||||
36FEEFEE1656DD6000100C04 /* Default-568h@2x.png in Resources */,
|
||||
255BAFED1790223300DE7158 /* GestureTestViewController.xib in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -169,6 +182,7 @@
|
||||
3647AE1F15CA0082006F70D6 /* main.m in Sources */,
|
||||
3647AE2315CA0082006F70D6 /* TA2AppDelegate.m in Sources */,
|
||||
3647AE2C15CA00D5006F70D6 /* MyViewControllerViewController.m in Sources */,
|
||||
255BAFEC1790223300DE7158 /* GestureTestViewController.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
||||
@@ -296,6 +296,28 @@ public class SimpleTest {
|
||||
Dimension text2 = driver.findElement(By.xpath("//textfield[2]")).getSize();
|
||||
assertEquals(text1.getWidth(), text2.getWidth());
|
||||
assertEquals(text1.getHeight(), text2.getHeight());
|
||||
}@Test
|
||||
@SuppressWarnings("serial")
|
||||
public void testRotation() throws Exception {
|
||||
WebElement button = driver.findElement(By.name("Test Gesture"));
|
||||
button.click();
|
||||
((JavascriptExecutor) driver).executeScript("mobile: rotate", new HashMap<String, Double>() {{ put("x", (double)114); put("y", (double)198); put("radius", (double)3); put("touchCount", (double)2); put("duration", 5.0); put("rotation", 220.0); }});
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("serial")
|
||||
public void testPinchClose() throws Exception {
|
||||
WebElement button = driver.findElement(By.name("Test Gesture"));
|
||||
button.click();
|
||||
((JavascriptExecutor) driver).executeScript("mobile: pinchClose", new HashMap<String, Double>() {{ put("startX", (double)150); put("startY", (double)230); put("endX", (double)200); put("endY", (double)260); put("duration", 2.0); }});
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("serial")
|
||||
public void testPinchOpen() throws Exception {
|
||||
WebElement button = driver.findElement(By.name("Test Gesture"));
|
||||
button.click();
|
||||
((JavascriptExecutor) driver).executeScript("mobile: pinchOpen", new HashMap<String, Double>() {{ put("startX", (double)114); put("startY", (double)198); put("endX", (double)257); put("endY", (double)256); put("duration", 2.0); }});
|
||||
}
|
||||
|
||||
public class SwipeableWebDriver extends RemoteWebDriver implements HasTouchScreen {
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
/*global it:true */
|
||||
"use strict";
|
||||
|
||||
var assert = require("assert")
|
||||
, describeWd = require("../../helpers/driverblock.js").describeForApp('TestApp')
|
||||
, should = require("should");
|
||||
|
||||
describeWd('pinchOpen and pinchClose gesture', function(h) {
|
||||
return it('should pinchOpen and pinchClose map after tapping Test Gesture', function(done) {
|
||||
var driver = h.driver;
|
||||
driver.elementsByTagName('button', function(err, buttons) {
|
||||
buttons[3].click(function(err) {
|
||||
should.not.exist(err);
|
||||
driver.elementByXPath('//window[1]/UIAMapView[1]', function(err) {
|
||||
should.not.exist(err);
|
||||
driver.execute("mobile: pinchOpen", [{startX: 114.0, startY: 198.0, endX: 257.0, endY: 256.0, duration: 5.0}], function(err) {
|
||||
driver.elementByXPath('//window[1]/UIAMapView[1]', function(err) {
|
||||
should.not.exist(err);
|
||||
driver.execute("mobile: pinchClose", [{startX: 114.0, startY: 198.0, endX: 257.0, endY: 256.0, duration: 5.0}], function(err) {
|
||||
should.not.exist(err);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,23 @@
|
||||
/*global it:true */
|
||||
"use strict";
|
||||
|
||||
var assert = require("assert")
|
||||
, describeWd = require("../../helpers/driverblock.js").describeForApp('TestApp')
|
||||
, should = require("should");
|
||||
|
||||
describeWd('rotation gesture', function(h) {
|
||||
return it('should rotate map after tapping Test Gesture', function(done) {
|
||||
var driver = h.driver;
|
||||
driver.elementsByTagName('button', function(err, buttons) {
|
||||
buttons[3].click();
|
||||
should.not.exist(err);
|
||||
});
|
||||
driver.elementsByTagName('Map', function(err) {
|
||||
should.not.exist(err);
|
||||
driver.execute("mobile: rotate", [{x: 114, y: 198, duration: 5, radius: 3, rotation: 220, touchCount: 2}], function(err) {
|
||||
should.not.exist(err);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user