appium-webdriveragent 13.1.2 → 13.2.0
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.
- package/CHANGELOG.md +12 -0
- package/WebDriverAgent.xcodeproj/project.pbxproj +11 -3
- package/WebDriverAgentLib/Info.plist +2 -2
- package/WebDriverAgentLib/Utilities/FBXPath-Private.h +5 -0
- package/WebDriverAgentLib/Utilities/FBXPath.m +36 -4
- package/WebDriverAgentLib/Utilities/FBXPathExtensions.h +40 -0
- package/WebDriverAgentLib/Utilities/FBXPathExtensions.m +418 -0
- package/WebDriverAgentLib/Utilities/XCTestPrivateSymbols.m +5 -0
- package/WebDriverAgentLib/Vendor/CocoaHTTPServer/Responses/HTTPErrorResponse.m +1 -3
- package/WebDriverAgentTests/IntegrationTests/FBXPathIntegrationTests.m +103 -0
- package/WebDriverAgentTests/UnitTests/FBXPathTests.m +125 -0
- package/build/lib/xcodebuild.d.ts.map +1 -1
- package/build/lib/xcodebuild.js +4 -1
- package/build/lib/xcodebuild.js.map +1 -1
- package/lib/xcodebuild.ts +4 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
## [13.2.0](https://github.com/appium/WebDriverAgent/compare/v13.1.3...v13.2.0) (2026-05-26)
|
|
2
|
+
|
|
3
|
+
### Features
|
|
4
|
+
|
|
5
|
+
* Add XPath extensions ([#1144](https://github.com/appium/WebDriverAgent/issues/1144)) ([a975b89](https://github.com/appium/WebDriverAgent/commit/a975b89ac998d31a72bf3723b843d85af8867cf0))
|
|
6
|
+
|
|
7
|
+
## [13.1.3](https://github.com/appium/WebDriverAgent/compare/v13.1.2...v13.1.3) (2026-05-24)
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* Scheme for derived data path retrieval ([#1142](https://github.com/appium/WebDriverAgent/issues/1142)) ([9ada5f6](https://github.com/appium/WebDriverAgent/commit/9ada5f6fe2af29278c488e845f8714f22fabfeee))
|
|
12
|
+
|
|
1
13
|
## [13.1.2](https://github.com/appium/WebDriverAgent/compare/v13.1.1...v13.1.2) (2026-05-23)
|
|
2
14
|
|
|
3
15
|
### Bug Fixes
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
641EE5D92240C5CA00173FCB /* XCUIElement+FBPickerWheel.m in Sources */ = {isa = PBXBuildFile; fileRef = 7136A4781E8918E60024FC3D /* XCUIElement+FBPickerWheel.m */; };
|
|
53
53
|
641EE5DA2240C5CA00173FCB /* XCUIApplicationProcessDelay.m in Sources */ = {isa = PBXBuildFile; fileRef = 6385F4A5220A40760095BBDB /* XCUIApplicationProcessDelay.m */; };
|
|
54
54
|
641EE5DB2240C5CA00173FCB /* FBXPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 711084431DA3AA7500F913D6 /* FBXPath.m */; };
|
|
55
|
+
71B2E0042733FB970074B004 /* FBXPathExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 71B2E0022733FB970074B002 /* FBXPathExtensions.m */; };
|
|
55
56
|
641EE5DC2240C5CA00173FCB /* XCUIApplication+FBAlert.m in Sources */ = {isa = PBXBuildFile; fileRef = 719CD8FB2126C88B00C7D0C2 /* XCUIApplication+FBAlert.m */; };
|
|
56
57
|
641EE5DE2240C5CA00173FCB /* XCUIApplication+FBTouchAction.m in Sources */ = {isa = PBXBuildFile; fileRef = 71BD20721F86116100B36EC2 /* XCUIApplication+FBTouchAction.m */; };
|
|
57
58
|
641EE5DF2240C5CA00173FCB /* FBWebServer.m in Sources */ = {isa = PBXBuildFile; fileRef = EE9AB78D1CAEDF0C008C271F /* FBWebServer.m */; };
|
|
@@ -316,6 +317,7 @@
|
|
|
316
317
|
64E3502F2AC0B6FE005F3ACB /* NSDictionary+FBUtf8SafeDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 716F0D9F2A16CA1000CDD977 /* NSDictionary+FBUtf8SafeDictionary.h */; };
|
|
317
318
|
711084441DA3AA7500F913D6 /* FBXPath.h in Headers */ = {isa = PBXBuildFile; fileRef = 711084421DA3AA7500F913D6 /* FBXPath.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
|
318
319
|
711084451DA3AA7500F913D6 /* FBXPath.m in Sources */ = {isa = PBXBuildFile; fileRef = 711084431DA3AA7500F913D6 /* FBXPath.m */; };
|
|
320
|
+
71B2E0062733FB970074B006 /* FBXPathExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = 71B2E0022733FB970074B002 /* FBXPathExtensions.m */; };
|
|
319
321
|
7119097C2152580600BA3C7E /* XCUIScreen.h in Headers */ = {isa = PBXBuildFile; fileRef = 7119097B2152580600BA3C7E /* XCUIScreen.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
|
320
322
|
7119E1EC1E891F8600D0B125 /* FBPickerWheelSelectTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 7119E1EB1E891F8600D0B125 /* FBPickerWheelSelectTests.m */; };
|
|
321
323
|
711CD03425ED1106001C01D2 /* XCUIScreenDataSource-Protocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 711CD03325ED1106001C01D2 /* XCUIScreenDataSource-Protocol.h */; };
|
|
@@ -976,6 +978,8 @@
|
|
|
976
978
|
64B26509228CE4FF002A5025 /* FBTVNavigationTracker-Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FBTVNavigationTracker-Private.h"; sourceTree = "<group>"; };
|
|
977
979
|
711084421DA3AA7500F913D6 /* FBXPath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBXPath.h; sourceTree = "<group>"; };
|
|
978
980
|
711084431DA3AA7500F913D6 /* FBXPath.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FBXPath.m; sourceTree = "<group>"; };
|
|
981
|
+
71B2E0012733FB970074B001 /* FBXPathExtensions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBXPathExtensions.h; sourceTree = "<group>"; };
|
|
982
|
+
71B2E0022733FB970074B002 /* FBXPathExtensions.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FBXPathExtensions.m; sourceTree = "<group>"; };
|
|
979
983
|
7119097B2152580600BA3C7E /* XCUIScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XCUIScreen.h; sourceTree = "<group>"; };
|
|
980
984
|
7119E1EB1E891F8600D0B125 /* FBPickerWheelSelectTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FBPickerWheelSelectTests.m; sourceTree = "<group>"; };
|
|
981
985
|
711CD03325ED1106001C01D2 /* XCUIScreenDataSource-Protocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "XCUIScreenDataSource-Protocol.h"; sourceTree = "<group>"; };
|
|
@@ -2000,9 +2004,11 @@
|
|
|
2000
2004
|
714D88CA2733FB970074A925 /* FBXMLGenerationOptions.h */,
|
|
2001
2005
|
714D88CB2733FB970074A925 /* FBXMLGenerationOptions.m */,
|
|
2002
2006
|
712A0C861DA3E55D007D02E5 /* FBXPath-Private.h */,
|
|
2003
|
-
|
|
2004
|
-
|
|
2005
|
-
|
|
2007
|
+
711084421DA3AA7500F913D6 /* FBXPath.h */,
|
|
2008
|
+
711084431DA3AA7500F913D6 /* FBXPath.m */,
|
|
2009
|
+
71B2E0012733FB970074B001 /* FBXPathExtensions.h */,
|
|
2010
|
+
71B2E0022733FB970074B002 /* FBXPathExtensions.m */,
|
|
2011
|
+
EE6B64FB1D0F86EF00E85F5D /* XCTestPrivateSymbols.h */,
|
|
2006
2012
|
EE6B64FC1D0F86EF00E85F5D /* XCTestPrivateSymbols.m */,
|
|
2007
2013
|
633E904A220DEE7F007CADF9 /* XCUIApplicationProcessDelay.h */,
|
|
2008
2014
|
6385F4A5220A40760095BBDB /* XCUIApplicationProcessDelay.m */,
|
|
@@ -3156,6 +3162,7 @@
|
|
|
3156
3162
|
641EE5D92240C5CA00173FCB /* XCUIElement+FBPickerWheel.m in Sources */,
|
|
3157
3163
|
641EE5DA2240C5CA00173FCB /* XCUIApplicationProcessDelay.m in Sources */,
|
|
3158
3164
|
641EE5DB2240C5CA00173FCB /* FBXPath.m in Sources */,
|
|
3165
|
+
71B2E0042733FB970074B004 /* FBXPathExtensions.m in Sources */,
|
|
3159
3166
|
71C8E55425399A6B008572C1 /* XCUIApplication+FBQuiescence.m in Sources */,
|
|
3160
3167
|
641EE5DC2240C5CA00173FCB /* XCUIApplication+FBAlert.m in Sources */,
|
|
3161
3168
|
641EE70F2240CE4800173FCB /* FBTVNavigationTracker.m in Sources */,
|
|
@@ -3277,6 +3284,7 @@
|
|
|
3277
3284
|
6385F4A7220A40760095BBDB /* XCUIApplicationProcessDelay.m in Sources */,
|
|
3278
3285
|
71A5C67529A4F39600421C37 /* XCTIssue+FBPatcher.m in Sources */,
|
|
3279
3286
|
711084451DA3AA7500F913D6 /* FBXPath.m in Sources */,
|
|
3287
|
+
71B2E0062733FB970074B006 /* FBXPathExtensions.m in Sources */,
|
|
3280
3288
|
719CD8FD2126C88B00C7D0C2 /* XCUIApplication+FBAlert.m in Sources */,
|
|
3281
3289
|
13DE7A45287C2A8D003243C6 /* FBXCAccessibilityElement.m in Sources */,
|
|
3282
3290
|
641EE70E2240CE4800173FCB /* FBTVNavigationTracker.m in Sources */,
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
<key>CFBundlePackageType</key>
|
|
16
16
|
<string>FMWK</string>
|
|
17
17
|
<key>CFBundleShortVersionString</key>
|
|
18
|
-
<string>13.
|
|
18
|
+
<string>13.2.0</string>
|
|
19
19
|
<key>CFBundleSignature</key>
|
|
20
20
|
<string>????</string>
|
|
21
21
|
<key>CFBundleVersion</key>
|
|
22
|
-
<string>13.
|
|
22
|
+
<string>13.2.0</string>
|
|
23
23
|
<key>NSPrincipalClass</key>
|
|
24
24
|
<string/>
|
|
25
25
|
</dict>
|
|
@@ -51,6 +51,11 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
51
51
|
document:(xmlDocPtr)doc
|
|
52
52
|
contextNode:(nullable xmlNodePtr)contextNode;
|
|
53
53
|
|
|
54
|
+
+ (xmlXPathObjectPtr)evaluate:(NSString *)xpathQuery
|
|
55
|
+
document:(xmlDocPtr)doc
|
|
56
|
+
contextNode:(nullable xmlNodePtr)contextNode
|
|
57
|
+
errorMessage:(NSString * _Nullable * _Nullable)errorMessage;
|
|
58
|
+
|
|
54
59
|
@end
|
|
55
60
|
|
|
56
61
|
NS_ASSUME_NONNULL_END
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
#import "FBLogger.h"
|
|
15
15
|
#import "FBMacros.h"
|
|
16
16
|
#import "FBXMLGenerationOptions.h"
|
|
17
|
+
#import "FBXPathExtensions.h"
|
|
17
18
|
#import "FBXCElementSnapshotWrapper+Helpers.h"
|
|
18
19
|
#import "NSString+FBXMLSafeString.h"
|
|
19
20
|
#import "XCUIApplication.h"
|
|
@@ -152,7 +153,17 @@ static NSString *const topNodeIndexPath = @"top";
|
|
|
152
153
|
|
|
153
154
|
+ (id)throwException:(NSString *)name forQuery:(NSString *)xpathQuery
|
|
154
155
|
{
|
|
155
|
-
|
|
156
|
+
return [self throwException:name forQuery:xpathQuery detail:nil];
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
+ (id)throwException:(NSString *)name forQuery:(NSString *)xpathQuery detail:(nullable NSString *)detail
|
|
160
|
+
{
|
|
161
|
+
NSString *reason;
|
|
162
|
+
if (nil != detail) {
|
|
163
|
+
reason = [NSString stringWithFormat:@"Cannot evaluate results for XPath expression \"%@\": %@", xpathQuery, detail];
|
|
164
|
+
} else {
|
|
165
|
+
reason = [NSString stringWithFormat:@"Cannot evaluate results for XPath expression \"%@\"", xpathQuery];
|
|
166
|
+
}
|
|
156
167
|
@throw [NSException exceptionWithName:name reason:reason userInfo:@{}];
|
|
157
168
|
return nil;
|
|
158
169
|
}
|
|
@@ -284,16 +295,18 @@ static NSString *const topNodeIndexPath = @"top";
|
|
|
284
295
|
contextNode = nodeSet->nodeTab[0];
|
|
285
296
|
}
|
|
286
297
|
}
|
|
298
|
+
NSString *evaluationError = nil;
|
|
287
299
|
xmlXPathObjectPtr queryResult = [self evaluate:xpathQuery
|
|
288
300
|
document:doc
|
|
289
|
-
contextNode:contextNode
|
|
301
|
+
contextNode:contextNode
|
|
302
|
+
errorMessage:&evaluationError];
|
|
290
303
|
if (NULL != contextNodeQueryResult) {
|
|
291
304
|
xmlXPathFreeObject(contextNodeQueryResult);
|
|
292
305
|
}
|
|
293
306
|
if (NULL == queryResult) {
|
|
294
307
|
xmlFreeTextWriter(writer);
|
|
295
308
|
xmlFreeDoc(doc);
|
|
296
|
-
return [self throwException:FBInvalidXPathException forQuery:xpathQuery];
|
|
309
|
+
return [self throwException:FBInvalidXPathException forQuery:xpathQuery detail:evaluationError];
|
|
297
310
|
}
|
|
298
311
|
|
|
299
312
|
NSArray *matchingSnapshots = [self collectMatchingSnapshots:queryResult->nodesetval
|
|
@@ -435,6 +448,14 @@ static NSString *const topNodeIndexPath = @"top";
|
|
|
435
448
|
+ (xmlXPathObjectPtr)evaluate:(NSString *)xpathQuery
|
|
436
449
|
document:(xmlDocPtr)doc
|
|
437
450
|
contextNode:(nullable xmlNodePtr)contextNode
|
|
451
|
+
{
|
|
452
|
+
return [self evaluate:xpathQuery document:doc contextNode:contextNode errorMessage:nil];
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
+ (xmlXPathObjectPtr)evaluate:(NSString *)xpathQuery
|
|
456
|
+
document:(xmlDocPtr)doc
|
|
457
|
+
contextNode:(nullable xmlNodePtr)contextNode
|
|
458
|
+
errorMessage:(NSString * _Nullable * _Nullable)errorMessage
|
|
438
459
|
{
|
|
439
460
|
xmlXPathContextPtr xpathCtx = xmlXPathNewContext(doc);
|
|
440
461
|
if (NULL == xpathCtx) {
|
|
@@ -443,10 +464,21 @@ static NSString *const topNodeIndexPath = @"top";
|
|
|
443
464
|
}
|
|
444
465
|
xpathCtx->node = NULL == contextNode ? doc->children : contextNode;
|
|
445
466
|
|
|
467
|
+
FBXPathExtensions *extensions = [FBXPathExtensions new];
|
|
468
|
+
[extensions registerFunctionsWithContext:xpathCtx];
|
|
469
|
+
|
|
446
470
|
xmlXPathObjectPtr xpathObj = xmlXPathEvalExpression((const xmlChar *)[xpathQuery UTF8String], xpathCtx);
|
|
447
471
|
if (NULL == xpathObj) {
|
|
472
|
+
NSString *detail = extensions.lastEvaluationError;
|
|
473
|
+
if (NULL != errorMessage) {
|
|
474
|
+
*errorMessage = detail;
|
|
475
|
+
}
|
|
476
|
+
if (nil != detail) {
|
|
477
|
+
[FBLogger logFmt:@"Failed to evaluate XPath query \"%@\": %@", xpathQuery, detail];
|
|
478
|
+
} else {
|
|
479
|
+
[FBLogger logFmt:@"Failed to invoke libxml2>xmlXPathEvalExpression for XPath query \"%@\"", xpathQuery];
|
|
480
|
+
}
|
|
448
481
|
xmlXPathFreeContext(xpathCtx);
|
|
449
|
-
[FBLogger logFmt:@"Failed to invoke libxml2>xmlXPathEvalExpression for XPath query \"%@\"", xpathQuery];
|
|
450
482
|
return NULL;
|
|
451
483
|
}
|
|
452
484
|
xmlXPathFreeContext(xpathCtx);
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2015-present, Facebook, Inc.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#import <Foundation/Foundation.h>
|
|
10
|
+
|
|
11
|
+
#ifdef __clang__
|
|
12
|
+
#pragma clang diagnostic push
|
|
13
|
+
#pragma clang diagnostic ignored "-Wpadded"
|
|
14
|
+
#endif
|
|
15
|
+
|
|
16
|
+
#import <libxml/xpath.h>
|
|
17
|
+
|
|
18
|
+
#ifdef __clang__
|
|
19
|
+
#pragma clang diagnostic pop
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
23
|
+
|
|
24
|
+
@interface FBXPathExtensions : NSObject
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
Registers XPath 2-compatible extension functions on the given libxml2 context.
|
|
28
|
+
*/
|
|
29
|
+
- (void)registerFunctionsWithContext:(xmlXPathContextPtr)xpathCtx;
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
Human-readable message for the most recent XPath extension evaluation failure on this instance,
|
|
33
|
+
for example an invalid regular expression pattern or flags. Nil when no extension error has occurred.
|
|
34
|
+
Scoped to the libxml2 context this instance is registered with; each evaluation should use its own instance.
|
|
35
|
+
*/
|
|
36
|
+
@property (nonatomic, nullable, readonly, copy) NSString *lastEvaluationError;
|
|
37
|
+
|
|
38
|
+
@end
|
|
39
|
+
|
|
40
|
+
NS_ASSUME_NONNULL_END
|
|
@@ -0,0 +1,418 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2015-present, Facebook, Inc.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#import "FBXPathExtensions.h"
|
|
10
|
+
|
|
11
|
+
#import "FBLogger.h"
|
|
12
|
+
|
|
13
|
+
#import <libxml/xpathInternals.h>
|
|
14
|
+
|
|
15
|
+
static void FBRegisterXPathExtensions(xmlXPathContextPtr xpathCtx);
|
|
16
|
+
|
|
17
|
+
static NSString *const FBXPathTokenSequenceSeparator = @"\x1E";
|
|
18
|
+
static const NSRegularExpressionOptions FBXPathNoRegexOptions = (NSRegularExpressionOptions)0;
|
|
19
|
+
static const NSMatchingOptions FBXPathNoMatchingOptions = (NSMatchingOptions)0;
|
|
20
|
+
|
|
21
|
+
@interface FBXPathExtensions ()
|
|
22
|
+
@property (nonatomic, nullable, readwrite, copy) NSString *lastEvaluationError;
|
|
23
|
+
@end
|
|
24
|
+
|
|
25
|
+
static FBXPathExtensions *FBXPathExtensionsFromParserContext(xmlXPathParserContextPtr ctxt)
|
|
26
|
+
{
|
|
27
|
+
if (NULL == ctxt || NULL == ctxt->context || NULL == ctxt->context->userData) {
|
|
28
|
+
return nil;
|
|
29
|
+
}
|
|
30
|
+
return (__bridge FBXPathExtensions *)ctxt->context->userData;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static void FBXPathSetEvaluationError(xmlXPathParserContextPtr ctxt, int xpathErrorCode, NSString *message)
|
|
34
|
+
{
|
|
35
|
+
FBXPathExtensions *extensions = FBXPathExtensionsFromParserContext(ctxt);
|
|
36
|
+
extensions.lastEvaluationError = message;
|
|
37
|
+
[FBLogger logFmt:@"XPath extension evaluation error: %@", message];
|
|
38
|
+
if (NULL == ctxt) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
xmlXPatherror(ctxt, __FILE__, __LINE__, xpathErrorCode);
|
|
42
|
+
ctxt->error = xpathErrorCode;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
static void FBXPathSetInvalidArityError(xmlXPathParserContextPtr ctxt)
|
|
46
|
+
{
|
|
47
|
+
if (NULL == ctxt) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
xmlXPatherror(ctxt, __FILE__, __LINE__, XPATH_INVALID_ARITY);
|
|
51
|
+
ctxt->error = XPATH_INVALID_ARITY;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
static BOOL FBXPathFlagsAreValid(NSString *flags, BOOL allowsQFlag)
|
|
55
|
+
{
|
|
56
|
+
if (nil == flags || 0 == flags.length) {
|
|
57
|
+
return YES;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
NSString *validFlags = allowsQFlag ? @"imsxq" : @"imsx";
|
|
61
|
+
for (NSUInteger index = 0; index < flags.length; index++) {
|
|
62
|
+
unichar flag = [flags characterAtIndex:index];
|
|
63
|
+
if ([validFlags rangeOfString:[NSString stringWithCharacters:&flag length:1]].location == NSNotFound) {
|
|
64
|
+
return NO;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return YES;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static NSString *FBXPathStringFromUTF8Bytes(const xmlChar *bytes)
|
|
71
|
+
{
|
|
72
|
+
if (NULL == bytes) {
|
|
73
|
+
return nil;
|
|
74
|
+
}
|
|
75
|
+
return [NSString stringWithUTF8String:(const char *)bytes];
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@implementation FBXPathExtensions
|
|
79
|
+
|
|
80
|
+
- (void)registerFunctionsWithContext:(xmlXPathContextPtr)xpathCtx
|
|
81
|
+
{
|
|
82
|
+
xpathCtx->userData = (__bridge void *)self;
|
|
83
|
+
FBRegisterXPathExtensions(xpathCtx);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@end
|
|
87
|
+
|
|
88
|
+
static NSString *FBXPathPopNSString(xmlXPathParserContextPtr ctxt)
|
|
89
|
+
{
|
|
90
|
+
xmlChar *value = xmlXPathPopString(ctxt);
|
|
91
|
+
if (NULL == value || xmlXPathCheckError(ctxt)) {
|
|
92
|
+
return nil;
|
|
93
|
+
}
|
|
94
|
+
NSString *result = [NSString stringWithUTF8String:(const char *)value];
|
|
95
|
+
xmlFree(value);
|
|
96
|
+
return result;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
static NSRegularExpressionOptions FBXPathRegexOptionsFromFlags(NSString *flags)
|
|
100
|
+
{
|
|
101
|
+
NSRegularExpressionOptions options = FBXPathNoRegexOptions;
|
|
102
|
+
if (nil != flags && [flags rangeOfString:@"i"].location != NSNotFound) {
|
|
103
|
+
options |= NSRegularExpressionCaseInsensitive;
|
|
104
|
+
}
|
|
105
|
+
return options;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
static NSRegularExpression *FBXPathRegexWithPattern(NSString *pattern,
|
|
109
|
+
NSString *flags,
|
|
110
|
+
BOOL allowsQFlag,
|
|
111
|
+
xmlXPathParserContextPtr ctxt)
|
|
112
|
+
{
|
|
113
|
+
if (!FBXPathFlagsAreValid(flags, allowsQFlag)) {
|
|
114
|
+
FBXPathSetEvaluationError(ctxt, XPATH_EXPR_ERROR, @"Invalid regular expression flags");
|
|
115
|
+
return nil;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
NSError *error = nil;
|
|
119
|
+
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern
|
|
120
|
+
options:FBXPathRegexOptionsFromFlags(flags)
|
|
121
|
+
error:&error];
|
|
122
|
+
if (nil == regex) {
|
|
123
|
+
NSString *message = error.localizedDescription ?: @"Invalid regular expression";
|
|
124
|
+
FBXPathSetEvaluationError(ctxt, XPATH_EXPR_ERROR, message);
|
|
125
|
+
return nil;
|
|
126
|
+
}
|
|
127
|
+
return regex;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
static BOOL FBXPathTokenizeString(NSString *input,
|
|
131
|
+
NSString *pattern,
|
|
132
|
+
xmlXPathParserContextPtr ctxt,
|
|
133
|
+
NSArray<NSString *> **outTokens)
|
|
134
|
+
{
|
|
135
|
+
if (0 == input.length) {
|
|
136
|
+
*outTokens = @[];
|
|
137
|
+
return YES;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (nil == pattern) {
|
|
141
|
+
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"\\S+"
|
|
142
|
+
options:FBXPathNoRegexOptions
|
|
143
|
+
error:nil];
|
|
144
|
+
if (nil == regex) {
|
|
145
|
+
FBXPathSetEvaluationError(ctxt, XPATH_EXPR_ERROR, @"Invalid regular expression");
|
|
146
|
+
return NO;
|
|
147
|
+
}
|
|
148
|
+
NSMutableArray<NSString *> *tokens = [NSMutableArray array];
|
|
149
|
+
[regex enumerateMatchesInString:input
|
|
150
|
+
options:FBXPathNoMatchingOptions
|
|
151
|
+
range:NSMakeRange(0, input.length)
|
|
152
|
+
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
|
|
153
|
+
if (nil != result) {
|
|
154
|
+
[tokens addObject:[input substringWithRange:result.range]];
|
|
155
|
+
}
|
|
156
|
+
}];
|
|
157
|
+
*outTokens = tokens.copy;
|
|
158
|
+
return YES;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
if (0 == pattern.length) {
|
|
162
|
+
NSMutableArray<NSString *> *tokens = [NSMutableArray array];
|
|
163
|
+
[input enumerateSubstringsInRange:NSMakeRange(0, input.length)
|
|
164
|
+
options:NSStringEnumerationByComposedCharacterSequences
|
|
165
|
+
usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {
|
|
166
|
+
if (substring.length > 0) {
|
|
167
|
+
[tokens addObject:substring];
|
|
168
|
+
}
|
|
169
|
+
}];
|
|
170
|
+
*outTokens = tokens.copy;
|
|
171
|
+
return YES;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
NSError *error = nil;
|
|
175
|
+
NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern
|
|
176
|
+
options:FBXPathNoRegexOptions
|
|
177
|
+
error:&error];
|
|
178
|
+
if (nil == regex) {
|
|
179
|
+
NSString *message = error.localizedDescription ?: @"Invalid regular expression";
|
|
180
|
+
FBXPathSetEvaluationError(ctxt, XPATH_EXPR_ERROR, message);
|
|
181
|
+
return NO;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
NSMutableArray<NSString *> *tokens = [NSMutableArray array];
|
|
185
|
+
__block NSUInteger lastIndex = 0;
|
|
186
|
+
[regex enumerateMatchesInString:input
|
|
187
|
+
options:FBXPathNoMatchingOptions
|
|
188
|
+
range:NSMakeRange(0, input.length)
|
|
189
|
+
usingBlock:^(NSTextCheckingResult *result, NSMatchingFlags flags, BOOL *stop) {
|
|
190
|
+
if (nil == result) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
193
|
+
if (result.range.location > lastIndex) {
|
|
194
|
+
NSString *token = [input substringWithRange:NSMakeRange(lastIndex, result.range.location - lastIndex)];
|
|
195
|
+
if (token.length > 0) {
|
|
196
|
+
[tokens addObject:token];
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
lastIndex = NSMaxRange(result.range);
|
|
200
|
+
}];
|
|
201
|
+
if (lastIndex < input.length) {
|
|
202
|
+
NSString *token = [input substringFromIndex:lastIndex];
|
|
203
|
+
if (token.length > 0) {
|
|
204
|
+
[tokens addObject:token];
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
*outTokens = tokens.copy;
|
|
208
|
+
return YES;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
static void FBXPathReturnNSString(xmlXPathParserContextPtr ctxt, NSString *value)
|
|
212
|
+
{
|
|
213
|
+
if (nil == value) {
|
|
214
|
+
xmlXPathReturnEmptyString(ctxt);
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
xmlChar *copiedValue = xmlStrdup((const xmlChar *)[value UTF8String]);
|
|
218
|
+
if (NULL == copiedValue) {
|
|
219
|
+
xmlXPathReturnEmptyString(ctxt);
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
// xmlXPathWrapString takes ownership of the buffer passed to xmlXPathReturnString.
|
|
223
|
+
xmlXPathReturnString(ctxt, copiedValue);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
static NSArray<NSString *> *FBXPathPartsFromXPathObject(xmlXPathObjectPtr sequence)
|
|
227
|
+
{
|
|
228
|
+
if (sequence->type == XPATH_NODESET && NULL != sequence->nodesetval) {
|
|
229
|
+
NSMutableArray<NSString *> *parts = [NSMutableArray array];
|
|
230
|
+
for (int index = 0; index < sequence->nodesetval->nodeNr; index++) {
|
|
231
|
+
xmlChar *content = xmlNodeGetContent(sequence->nodesetval->nodeTab[index]);
|
|
232
|
+
if (NULL != content) {
|
|
233
|
+
NSString *part = FBXPathStringFromUTF8Bytes(content);
|
|
234
|
+
xmlFree(content);
|
|
235
|
+
if (nil != part) {
|
|
236
|
+
[parts addObject:part];
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return parts.copy;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
xmlChar *asString = xmlXPathCastToString(sequence);
|
|
244
|
+
if (NULL == asString) {
|
|
245
|
+
return @[];
|
|
246
|
+
}
|
|
247
|
+
NSString *value = FBXPathStringFromUTF8Bytes(asString);
|
|
248
|
+
xmlFree(asString);
|
|
249
|
+
if (nil == value || 0 == value.length) {
|
|
250
|
+
return @[];
|
|
251
|
+
}
|
|
252
|
+
if ([value rangeOfString:FBXPathTokenSequenceSeparator].location != NSNotFound) {
|
|
253
|
+
return [value componentsSeparatedByString:FBXPathTokenSequenceSeparator];
|
|
254
|
+
}
|
|
255
|
+
return @[value];
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
static void FBXPathMatchesFunction(xmlXPathParserContextPtr ctxt, int nargs)
|
|
259
|
+
{
|
|
260
|
+
if (nargs < 2 || nargs > 3) {
|
|
261
|
+
FBXPathSetInvalidArityError(ctxt);
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
NSString *flags = nargs == 3 ? FBXPathPopNSString(ctxt) : nil;
|
|
266
|
+
NSString *pattern = FBXPathPopNSString(ctxt);
|
|
267
|
+
NSString *input = FBXPathPopNSString(ctxt);
|
|
268
|
+
if (nil == pattern || nil == input || xmlXPathCheckError(ctxt)) {
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
NSRegularExpression *regex = FBXPathRegexWithPattern(pattern, flags, NO, ctxt);
|
|
273
|
+
if (nil == regex) {
|
|
274
|
+
return;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
NSRange range = NSMakeRange(0, input.length);
|
|
278
|
+
NSTextCheckingResult *match = [regex firstMatchInString:input options:FBXPathNoMatchingOptions range:range];
|
|
279
|
+
xmlXPathReturnBoolean(ctxt, nil != match);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
static void FBXPathEndsWithFunction(xmlXPathParserContextPtr ctxt, int nargs)
|
|
283
|
+
{
|
|
284
|
+
if (nargs != 2) {
|
|
285
|
+
FBXPathSetInvalidArityError(ctxt);
|
|
286
|
+
return;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
NSString *suffix = FBXPathPopNSString(ctxt);
|
|
290
|
+
NSString *input = FBXPathPopNSString(ctxt);
|
|
291
|
+
if (nil == suffix || nil == input || xmlXPathCheckError(ctxt)) {
|
|
292
|
+
return;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
xmlXPathReturnBoolean(ctxt, [input hasSuffix:suffix]);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
static void FBXPathLowerCaseFunction(xmlXPathParserContextPtr ctxt, int nargs)
|
|
299
|
+
{
|
|
300
|
+
if (nargs != 1) {
|
|
301
|
+
FBXPathSetInvalidArityError(ctxt);
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
NSString *input = FBXPathPopNSString(ctxt);
|
|
306
|
+
if (nil == input || xmlXPathCheckError(ctxt)) {
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
FBXPathReturnNSString(ctxt, input.lowercaseString);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
static void FBXPathUpperCaseFunction(xmlXPathParserContextPtr ctxt, int nargs)
|
|
314
|
+
{
|
|
315
|
+
if (nargs != 1) {
|
|
316
|
+
FBXPathSetInvalidArityError(ctxt);
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
NSString *input = FBXPathPopNSString(ctxt);
|
|
321
|
+
if (nil == input || xmlXPathCheckError(ctxt)) {
|
|
322
|
+
return;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
FBXPathReturnNSString(ctxt, input.uppercaseString);
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
static void FBXPathReplaceFunction(xmlXPathParserContextPtr ctxt, int nargs)
|
|
329
|
+
{
|
|
330
|
+
if (nargs < 3 || nargs > 4) {
|
|
331
|
+
FBXPathSetInvalidArityError(ctxt);
|
|
332
|
+
return;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
NSString *flags = nargs == 4 ? FBXPathPopNSString(ctxt) : nil;
|
|
336
|
+
NSString *replacement = FBXPathPopNSString(ctxt);
|
|
337
|
+
NSString *pattern = FBXPathPopNSString(ctxt);
|
|
338
|
+
NSString *input = FBXPathPopNSString(ctxt);
|
|
339
|
+
if (nil == replacement || nil == pattern || nil == input || xmlXPathCheckError(ctxt)) {
|
|
340
|
+
return;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
NSRegularExpression *regex = FBXPathRegexWithPattern(pattern, flags, YES, ctxt);
|
|
344
|
+
if (nil == regex) {
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
NSRange range = NSMakeRange(0, input.length);
|
|
349
|
+
NSString *result = [regex stringByReplacingMatchesInString:input
|
|
350
|
+
options:FBXPathNoMatchingOptions
|
|
351
|
+
range:range
|
|
352
|
+
withTemplate:replacement];
|
|
353
|
+
FBXPathReturnNSString(ctxt, result);
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
static void FBXPathTokenizeFunction(xmlXPathParserContextPtr ctxt, int nargs)
|
|
357
|
+
{
|
|
358
|
+
if (nargs < 1 || nargs > 2) {
|
|
359
|
+
FBXPathSetInvalidArityError(ctxt);
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
NSString *pattern = nargs == 2 ? FBXPathPopNSString(ctxt) : nil;
|
|
364
|
+
NSString *input = FBXPathPopNSString(ctxt);
|
|
365
|
+
if (nil == input || xmlXPathCheckError(ctxt)) {
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
NSArray<NSString *> *tokens = nil;
|
|
370
|
+
if (!FBXPathTokenizeString(input, pattern, ctxt, &tokens)) {
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
FBXPathReturnNSString(ctxt, [tokens componentsJoinedByString:FBXPathTokenSequenceSeparator]);
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
static void FBXPathStringJoinFunction(xmlXPathParserContextPtr ctxt, int nargs)
|
|
378
|
+
{
|
|
379
|
+
if (nargs != 2) {
|
|
380
|
+
FBXPathSetInvalidArityError(ctxt);
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
xmlChar *separatorChars = xmlXPathPopString(ctxt);
|
|
385
|
+
xmlXPathObjectPtr sequence = valuePop(ctxt);
|
|
386
|
+
if (xmlXPathCheckError(ctxt) || NULL == sequence || NULL == separatorChars) {
|
|
387
|
+
if (NULL != separatorChars) {
|
|
388
|
+
xmlFree(separatorChars);
|
|
389
|
+
}
|
|
390
|
+
if (NULL != sequence) {
|
|
391
|
+
xmlXPathFreeObject(sequence);
|
|
392
|
+
}
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
NSString *separator = FBXPathStringFromUTF8Bytes(separatorChars);
|
|
397
|
+
xmlFree(separatorChars);
|
|
398
|
+
if (nil == separator) {
|
|
399
|
+
xmlXPathFreeObject(sequence);
|
|
400
|
+
return;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
NSArray<NSString *> *parts = FBXPathPartsFromXPathObject(sequence);
|
|
404
|
+
xmlXPathFreeObject(sequence);
|
|
405
|
+
|
|
406
|
+
FBXPathReturnNSString(ctxt, [parts componentsJoinedByString:separator]);
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
static void FBRegisterXPathExtensions(xmlXPathContextPtr xpathCtx)
|
|
410
|
+
{
|
|
411
|
+
xmlXPathRegisterFunc(xpathCtx, BAD_CAST "matches", FBXPathMatchesFunction);
|
|
412
|
+
xmlXPathRegisterFunc(xpathCtx, BAD_CAST "ends-with", FBXPathEndsWithFunction);
|
|
413
|
+
xmlXPathRegisterFunc(xpathCtx, BAD_CAST "lower-case", FBXPathLowerCaseFunction);
|
|
414
|
+
xmlXPathRegisterFunc(xpathCtx, BAD_CAST "upper-case", FBXPathUpperCaseFunction);
|
|
415
|
+
xmlXPathRegisterFunc(xpathCtx, BAD_CAST "replace", FBXPathReplaceFunction);
|
|
416
|
+
xmlXPathRegisterFunc(xpathCtx, BAD_CAST "tokenize", FBXPathTokenizeFunction);
|
|
417
|
+
xmlXPathRegisterFunc(xpathCtx, BAD_CAST "string-join", FBXPathStringJoinFunction);
|
|
418
|
+
}
|
|
@@ -35,11 +35,16 @@ NSArray<NSNumber *> *(*XCAXAccessibilityAttributesForStringAttributes)(id);
|
|
|
35
35
|
|
|
36
36
|
@implementation FBXCTestSymbolsLoader
|
|
37
37
|
|
|
38
|
+
#pragma clang diagnostic push
|
|
39
|
+
#pragma clang diagnostic ignored "-Wobjc-load-method"
|
|
40
|
+
|
|
38
41
|
+ (void)load
|
|
39
42
|
{
|
|
40
43
|
FBLoadXCTestSymbols();
|
|
41
44
|
}
|
|
42
45
|
|
|
46
|
+
#pragma clang diagnostic pop
|
|
47
|
+
|
|
43
48
|
@end
|
|
44
49
|
|
|
45
50
|
void FBLoadXCTestSymbols(void)
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
#import <XCTest/XCTest.h>
|
|
10
10
|
|
|
11
11
|
#import "FBIntegrationTestCase.h"
|
|
12
|
+
#import "FBExceptions.h"
|
|
12
13
|
#import "FBMacros.h"
|
|
13
14
|
#import "FBTestMacros.h"
|
|
14
15
|
#import "FBXPath.h"
|
|
@@ -51,6 +52,31 @@
|
|
|
51
52
|
return snapshot;
|
|
52
53
|
}
|
|
53
54
|
|
|
55
|
+
- (NSSet<NSString *> *)labelsForMatchingSnapshots:(NSArray<id<FBXCElementSnapshot>> *)matchingSnapshots
|
|
56
|
+
{
|
|
57
|
+
NSMutableSet<NSString *> *labels = [NSMutableSet set];
|
|
58
|
+
for (id<FBXCElementSnapshot> snapshot in matchingSnapshots) {
|
|
59
|
+
NSString *label = [FBXCElementSnapshotWrapper ensureWrapped:snapshot].wdLabel;
|
|
60
|
+
if (nil != label) {
|
|
61
|
+
[labels addObject:label];
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return labels.copy;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
- (void)assertXPathQuery:(NSString *)query findsButtonLabels:(NSArray<NSString *> *)expectedLabels
|
|
68
|
+
{
|
|
69
|
+
NSArray<id<FBXCElementSnapshot>> *matchingSnapshots = [FBXPath matchesWithRootElement:self.testedApplication
|
|
70
|
+
forQuery:query];
|
|
71
|
+
NSSet<NSString *> *foundLabels = [self labelsForMatchingSnapshots:matchingSnapshots];
|
|
72
|
+
NSSet<NSString *> *expectedLabelSet = [NSSet setWithArray:expectedLabels];
|
|
73
|
+
XCTAssertEqual(foundLabels.count, expectedLabelSet.count);
|
|
74
|
+
XCTAssertEqualObjects(foundLabels, expectedLabelSet);
|
|
75
|
+
for (id<FBXCElementSnapshot> snapshot in matchingSnapshots) {
|
|
76
|
+
XCTAssertEqualObjects([FBXCElementSnapshotWrapper ensureWrapped:snapshot].wdType, @"XCUIElementTypeButton");
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
54
80
|
- (void)testApplicationNodeXMLRepresentation
|
|
55
81
|
{
|
|
56
82
|
id<FBXCElementSnapshot> snapshot = [self.testedApplication fb_customSnapshot];
|
|
@@ -154,4 +180,81 @@
|
|
|
154
180
|
}
|
|
155
181
|
}
|
|
156
182
|
|
|
183
|
+
- (void)testFindMatchesWithMatchesFunction
|
|
184
|
+
{
|
|
185
|
+
[self assertXPathQuery:@"//XCUIElementTypeButton[matches(@label, '^Alerts$')]"
|
|
186
|
+
findsButtonLabels:@[@"Alerts"]];
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
- (void)testFindMatchesWithMatchesFunctionCaseInsensitive
|
|
190
|
+
{
|
|
191
|
+
[self assertXPathQuery:@"//XCUIElementTypeButton[matches(@label, '^alerts$', 'i')]"
|
|
192
|
+
findsButtonLabels:@[@"Alerts"]];
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
- (void)testFindMatchesWithEndsWithFunction
|
|
196
|
+
{
|
|
197
|
+
[self assertXPathQuery:@"//XCUIElementTypeButton[ends-with(@label, 'ing')]"
|
|
198
|
+
findsButtonLabels:@[@"Scrolling"]];
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
- (void)testFindMatchesWithLowerCaseFunction
|
|
202
|
+
{
|
|
203
|
+
[self assertXPathQuery:@"//XCUIElementTypeButton[lower-case(@label)='alerts']"
|
|
204
|
+
findsButtonLabels:@[@"Alerts"]];
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
- (void)testFindMatchesWithUpperCaseFunction
|
|
208
|
+
{
|
|
209
|
+
[self assertXPathQuery:@"//XCUIElementTypeButton[upper-case(@label)='TOUCH']"
|
|
210
|
+
findsButtonLabels:@[@"Touch"]];
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
- (void)testFindMatchesWithReplaceFunction
|
|
214
|
+
{
|
|
215
|
+
[self assertXPathQuery:@"//XCUIElementTypeButton[replace(@label, ' ', '')='Deadlockapp']"
|
|
216
|
+
findsButtonLabels:@[@"Deadlock app"]];
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
- (void)testFindMatchesWithTokenizeAndStringJoinFunctions
|
|
220
|
+
{
|
|
221
|
+
[self assertXPathQuery:@"//XCUIElementTypeButton[string-join(tokenize(@label, ' '), '-')='Deadlock-app']"
|
|
222
|
+
findsButtonLabels:@[@"Deadlock app"]];
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
- (void)testFindMatchesWithExtensionFunctionsNoMatches
|
|
226
|
+
{
|
|
227
|
+
NSArray<id<FBXCElementSnapshot>> *matchingSnapshots = [FBXPath matchesWithRootElement:self.testedApplication
|
|
228
|
+
forQuery:@"//XCUIElementTypeButton[matches(@label, '^NoSuchButton$')]"];
|
|
229
|
+
XCTAssertEqual(matchingSnapshots.count, 0);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
- (void)testFindMultipleMatchesWithMatchesFunction
|
|
233
|
+
{
|
|
234
|
+
[self assertXPathQuery:@"//XCUIElementTypeButton[matches(@label, '.*')]"
|
|
235
|
+
findsButtonLabels:@[@"Alerts", @"Deadlock app", @"Attributes", @"Scrolling", @"Touch"]];
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
- (void)testInvalidXPathExtensionFunctionViaElementLookup
|
|
239
|
+
{
|
|
240
|
+
XCTAssertThrowsSpecificNamed([self.testedView fb_descendantsMatchingXPathQuery:@"//XCUIElementTypeButton[matches(@label)]"
|
|
241
|
+
shouldReturnAfterFirstMatch:NO],
|
|
242
|
+
NSException,
|
|
243
|
+
FBInvalidXPathException);
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
- (void)testInvalidXPathExtensionRegexpViaElementLookup
|
|
247
|
+
{
|
|
248
|
+
NSException *exception = nil;
|
|
249
|
+
@try {
|
|
250
|
+
[self.testedView fb_descendantsMatchingXPathQuery:@"//XCUIElementTypeButton[matches(@label, '[')]"
|
|
251
|
+
shouldReturnAfterFirstMatch:NO];
|
|
252
|
+
} @catch (NSException *caughtException) {
|
|
253
|
+
exception = caughtException;
|
|
254
|
+
}
|
|
255
|
+
XCTAssertEqualObjects(exception.name, FBInvalidXPathException);
|
|
256
|
+
XCTAssertTrue([exception.reason containsString:@"Cannot evaluate results for XPath expression"]);
|
|
257
|
+
XCTAssertTrue([exception.reason rangeOfString:@"invalid" options:NSCaseInsensitiveSearch].location != NSNotFound);
|
|
258
|
+
}
|
|
259
|
+
|
|
157
260
|
@end
|
|
@@ -152,4 +152,129 @@
|
|
|
152
152
|
XCTAssertEqual(1, [matchingSnapshots count]);
|
|
153
153
|
}
|
|
154
154
|
|
|
155
|
+
- (NSString *)xpathStringResultForQuery:(NSString *)query document:(xmlDocPtr)doc
|
|
156
|
+
{
|
|
157
|
+
xmlXPathObjectPtr queryResult = [FBXPath evaluate:query document:doc contextNode:NULL];
|
|
158
|
+
if (NULL == queryResult) {
|
|
159
|
+
return nil;
|
|
160
|
+
}
|
|
161
|
+
xmlChar *stringValue = xmlXPathCastToString(queryResult);
|
|
162
|
+
xmlXPathFreeObject(queryResult);
|
|
163
|
+
if (NULL == stringValue) {
|
|
164
|
+
return nil;
|
|
165
|
+
}
|
|
166
|
+
NSString *result = [NSString stringWithUTF8String:(const char *)stringValue];
|
|
167
|
+
xmlFree(stringValue);
|
|
168
|
+
return result;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
- (BOOL)xpathBooleanResultForQuery:(NSString *)query document:(xmlDocPtr)doc
|
|
172
|
+
{
|
|
173
|
+
xmlXPathObjectPtr queryResult = [FBXPath evaluate:query document:doc contextNode:NULL];
|
|
174
|
+
if (NULL == queryResult) {
|
|
175
|
+
return NO;
|
|
176
|
+
}
|
|
177
|
+
BOOL result = queryResult->boolval;
|
|
178
|
+
xmlXPathFreeObject(queryResult);
|
|
179
|
+
return result;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
- (xmlDocPtr)documentForSnapshot:(XCElementSnapshotDouble *)snapshot query:(NSString *)query
|
|
183
|
+
{
|
|
184
|
+
xmlDocPtr doc;
|
|
185
|
+
xmlTextWriterPtr writer = xmlNewTextWriterDoc(&doc, 0);
|
|
186
|
+
NSMutableDictionary *elementStore = [NSMutableDictionary dictionary];
|
|
187
|
+
id<FBElement> root = (id<FBElement>)[FBXCElementSnapshotWrapper ensureWrapped:(id)snapshot];
|
|
188
|
+
int rc = xmlTextWriterStartDocument(writer, NULL, "UTF-8", NULL);
|
|
189
|
+
if (rc >= 0) {
|
|
190
|
+
rc = [FBXPath xmlRepresentationWithRootElement:(id<FBXCElementSnapshot>)root
|
|
191
|
+
writer:writer
|
|
192
|
+
elementStore:elementStore
|
|
193
|
+
query:query
|
|
194
|
+
excludingAttributes:nil];
|
|
195
|
+
if (rc >= 0) {
|
|
196
|
+
rc = xmlTextWriterEndDocument(writer);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
xmlFreeTextWriter(writer);
|
|
200
|
+
XCTAssertTrue(rc >= 0);
|
|
201
|
+
return doc;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
- (void)testXPathExtensionFunctions
|
|
205
|
+
{
|
|
206
|
+
XCElementSnapshotDouble *snapshot = [XCElementSnapshotDouble new];
|
|
207
|
+
snapshot.label = @"Hello World";
|
|
208
|
+
snapshot.value = @"One-Two-Three";
|
|
209
|
+
|
|
210
|
+
xmlDocPtr doc = [self documentForSnapshot:snapshot query:@"//*[@label and @name and @value]"];
|
|
211
|
+
|
|
212
|
+
@try {
|
|
213
|
+
XCTAssertTrue([self xpathBooleanResultForQuery:@"matches(//XCUIElementTypeOther/@label, 'Hello.*')" document:doc]);
|
|
214
|
+
XCTAssertFalse([self xpathBooleanResultForQuery:@"matches(//XCUIElementTypeOther/@label, 'hello.*')" document:doc]);
|
|
215
|
+
XCTAssertTrue([self xpathBooleanResultForQuery:@"matches(//XCUIElementTypeOther/@label, 'hello.*', 'i')" document:doc]);
|
|
216
|
+
XCTAssertTrue([self xpathBooleanResultForQuery:@"ends-with(//XCUIElementTypeOther/@name, 'Name')" document:doc]);
|
|
217
|
+
XCTAssertFalse([self xpathBooleanResultForQuery:@"ends-with(//XCUIElementTypeOther/@name, 'Foo')" document:doc]);
|
|
218
|
+
XCTAssertEqualObjects([self xpathStringResultForQuery:@"lower-case(//XCUIElementTypeOther/@label)" document:doc], @"hello world");
|
|
219
|
+
XCTAssertEqualObjects([self xpathStringResultForQuery:@"upper-case(//XCUIElementTypeOther/@name)" document:doc], @"TESTNAME");
|
|
220
|
+
XCTAssertEqualObjects([self xpathStringResultForQuery:@"replace(//XCUIElementTypeOther/@value, '-', '_')" document:doc], @"One_Two_Three");
|
|
221
|
+
XCTAssertEqualObjects([self xpathStringResultForQuery:@"string-join(tokenize(//XCUIElementTypeOther/@value, '-'), '|')" document:doc], @"One|Two|Three");
|
|
222
|
+
} @finally {
|
|
223
|
+
xmlFreeDoc(doc);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
- (void)testInvalidXPathExtensionRegexp
|
|
228
|
+
{
|
|
229
|
+
XCElementSnapshotDouble *snapshot = [XCElementSnapshotDouble new];
|
|
230
|
+
snapshot.label = @"Hello World";
|
|
231
|
+
snapshot.value = @"One-Two-Three";
|
|
232
|
+
|
|
233
|
+
xmlDocPtr doc = [self documentForSnapshot:snapshot query:@"//*[@label and @name and @value]"];
|
|
234
|
+
|
|
235
|
+
@try {
|
|
236
|
+
[self assertXPathEvaluationFailsForQuery:@"matches(//XCUIElementTypeOther/@label, '[')" document:doc];
|
|
237
|
+
[self assertXPathEvaluationFailsForQuery:@"replace(//XCUIElementTypeOther/@label, '[', '')" document:doc];
|
|
238
|
+
[self assertXPathEvaluationFailsForQuery:@"tokenize(//XCUIElementTypeOther/@value, '[')" document:doc];
|
|
239
|
+
[self assertXPathEvaluationFailsForQuery:@"matches(//XCUIElementTypeOther/@label, 'a', 'z')" document:doc];
|
|
240
|
+
[self assertXPathEvaluationFailsForQuery:@"//XCUIElementTypeOther[matches(@label, '[')]" document:doc];
|
|
241
|
+
} @finally {
|
|
242
|
+
xmlFreeDoc(doc);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
- (void)assertXPathEvaluationFailsForQuery:(NSString *)query document:(xmlDocPtr)doc
|
|
247
|
+
{
|
|
248
|
+
xmlXPathObjectPtr queryResult = [FBXPath evaluate:query document:doc contextNode:NULL];
|
|
249
|
+
@try {
|
|
250
|
+
XCTAssertEqual(NULL, queryResult);
|
|
251
|
+
} @finally {
|
|
252
|
+
if (NULL != queryResult) {
|
|
253
|
+
xmlXPathFreeObject(queryResult);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
- (void)testInvalidXPathExtensionFunctionArity
|
|
259
|
+
{
|
|
260
|
+
XCElementSnapshotDouble *snapshot = [XCElementSnapshotDouble new];
|
|
261
|
+
snapshot.label = @"Hello World";
|
|
262
|
+
snapshot.value = @"One-Two-Three";
|
|
263
|
+
|
|
264
|
+
xmlDocPtr doc = [self documentForSnapshot:snapshot query:@"//*[@label and @name and @value]"];
|
|
265
|
+
|
|
266
|
+
@try {
|
|
267
|
+
[self assertXPathEvaluationFailsForQuery:@"matches(//XCUIElementTypeOther/@label)" document:doc];
|
|
268
|
+
[self assertXPathEvaluationFailsForQuery:@"lower-case()" document:doc];
|
|
269
|
+
[self assertXPathEvaluationFailsForQuery:@"string-join(//XCUIElementTypeOther/@label)" document:doc];
|
|
270
|
+
[self assertXPathEvaluationFailsForQuery:@"replace(//XCUIElementTypeOther/@label, '-')" document:doc];
|
|
271
|
+
[self assertXPathEvaluationFailsForQuery:@"//XCUIElementTypeOther[matches(@label)]" document:doc];
|
|
272
|
+
[self assertXPathEvaluationFailsForQuery:@"//XCUIElementTypeOther[lower-case()]" document:doc];
|
|
273
|
+
[self assertXPathEvaluationFailsForQuery:@"//XCUIElementTypeOther[string-join(@label)]" document:doc];
|
|
274
|
+
[self assertXPathEvaluationFailsForQuery:@"//XCUIElementTypeOther[replace(@label, '-')]" document:doc];
|
|
275
|
+
} @finally {
|
|
276
|
+
xmlFreeDoc(doc);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
|
|
155
280
|
@end
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xcodebuild.d.ts","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAE,YAAY,EAAC,MAAM,eAAe,CAAC;AAa9D,OAAO,KAAK,EACV,WAAW,EACX,4BAA4B,EAC5B,cAAc,EACd,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,oBAAoB,CAAC;AA0BvD,qBAAa,UAAU;IACrB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,OAAO,CAAC,cAAc,CAAC,CAAU;IACjC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAU;IAC9C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,mCAAmC,CAAC,CAAU;IAC/D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAS;IAC9C,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAGnC;IACJ,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,iBAAiB,CAAC,CAAS;IAEnC;;;;;OAKG;gBACS,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,GAAE,YAAY,GAAG,IAAW;IAgDtF;;;;OAIG;IACG,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBzD;;;;OAIG;IACG,qBAAqB,CACzB,OAAO,CAAC,EAAE,4BAA4B,GACrC,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAU1C;;OAEG;IACG,uBAAuB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"xcodebuild.d.ts","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"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"}
|
package/build/lib/xcodebuild.js
CHANGED
|
@@ -144,7 +144,10 @@ class XcodeBuild {
|
|
|
144
144
|
if (this.derivedDataPath) {
|
|
145
145
|
return this.derivedDataPath;
|
|
146
146
|
}
|
|
147
|
-
|
|
147
|
+
// iOS/tvOS share the same derived data path
|
|
148
|
+
const buildSettings = await this.retrieveBuildSettings({
|
|
149
|
+
scheme: 'WebDriverAgentRunner',
|
|
150
|
+
});
|
|
148
151
|
const buildDir = buildSettings?.BUILD_DIR;
|
|
149
152
|
if (!buildDir) {
|
|
150
153
|
this.log.warn('Cannot parse WDA BUILD_DIR from build settings');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xcodebuild.js","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"xcodebuild.js","sourceRoot":"","sources":["../../lib/xcodebuild.ts"],"names":[],"mappings":"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"}
|
package/lib/xcodebuild.ts
CHANGED
|
@@ -190,7 +190,10 @@ export class XcodeBuild {
|
|
|
190
190
|
return this.derivedDataPath;
|
|
191
191
|
}
|
|
192
192
|
|
|
193
|
-
|
|
193
|
+
// iOS/tvOS share the same derived data path
|
|
194
|
+
const buildSettings = await this.retrieveBuildSettings({
|
|
195
|
+
scheme: 'WebDriverAgentRunner',
|
|
196
|
+
});
|
|
194
197
|
const buildDir = buildSettings?.BUILD_DIR;
|
|
195
198
|
if (!buildDir) {
|
|
196
199
|
this.log.warn('Cannot parse WDA BUILD_DIR from build settings');
|