-
-
Notifications
You must be signed in to change notification settings - Fork 25
/
Copy pathAMActionCommands.m
56 lines (47 loc) · 1.72 KB
/
AMActionCommands.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
#import "AMActionCommands.h"
#import "FBRoute.h"
#import "FBRouteRequest.h"
#import "FBSession.h"
#import "XCUIApplication+FBW3CActions.h"
@implementation AMActionCommands
#pragma mark - <AMActionCommands>
+ (NSArray *)routes
{
return
@[
[[FBRoute POST:@"/actions"] respondWithTarget:self action:@selector(handlePerformW3CActions:)],
[[FBRoute DELETE:@"/actions"] respondWithTarget:self action:@selector(handleReleaseW3CActions:)],
];
}
#pragma mark - Commands
+ (id<FBResponsePayload>)handlePerformW3CActions:(FBRouteRequest *)request
{
XCUIApplication *application = request.session.currentApplication;
FBElementCache *cache = request.session.elementCache;
NSArray *actions = (NSArray *)request.arguments[@"actions"];
NSError *error;
if (![application fb_performW3CActions:actions
elementCache:cache
error:&error]) {
if ([error.localizedDescription containsString:@"not visible"]) {
return FBResponseWithStatus([FBCommandStatus elementNotVisibleErrorWithMessage:error.localizedDescription
traceback:nil]);
}
return FBResponseWithUnknownError(error);
}
return FBResponseWithOK();
}
+ (id<FBResponsePayload>)handleReleaseW3CActions:(FBRouteRequest *)request
{
// just a dummy call to avoid UnknownCommandError being thrown
return FBResponseWithOK();
}
@end