Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_43355755
engine
提交
679a7adb
E
engine
项目概览
weixin_43355755
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
679a7adb
编写于
7月 02, 2021
作者:
G
gaaclarke
提交者:
GitHub
7月 02, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Follow up cleanup of some unit tests for right click handling. (#27152)
上级
2dacffa4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
59 addition
and
40 deletion
+59
-40
testing/scenario_app/ios/Scenarios/ScenariosUITests/iPadGestureTests.m
...rio_app/ios/Scenarios/ScenariosUITests/iPadGestureTests.m
+59
-40
未找到文件。
testing/scenario_app/ios/Scenarios/ScenariosUITests/iPadGestureTests.m
浏览文件 @
679a7adb
...
...
@@ -17,50 +17,69 @@ static const NSInteger kSecondsToWaitForFlutterView = 30;
self
.
continueAfterFailure
=
NO
;
}
#ifdef __IPHONE_15_0
static
BOOL
performBoolSelector
(
id
target
,
SEL
selector
)
{
NSInvocation
*
invocation
=
[
NSInvocation
invocationWithMethodSignature:
[[
target
class
]
instanceMethodSignatureForSelector
:
selector
]];
[
invocation
setSelector
:
selector
];
[
invocation
setTarget
:
target
];
[
invocation
invoke
];
BOOL
returnValue
;
[
invocation
getReturnValue
:
&
returnValue
];
return
returnValue
;
}
// TODO(85810): Remove reflection in this test when Xcode version is upgraded to 13.
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wundeclared-selector"
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
-
(
void
)
testPointerButtons
{
if
(
@available
(
iOS
15
,
*
))
{
XCTSkipUnless
([
XCUIDevice
.
sharedDevice
supportsPointerInteraction
],
"Device does not support pointer interaction"
);
XCUIApplication
*
app
=
[[
XCUIApplication
alloc
]
init
];
app
.
launchArguments
=
@[
@"--pointer-events"
];
[
app
launch
];
BOOL
supportsPointerInteraction
=
NO
;
SEL
supportsPointerInteractionSelector
=
@selector
(
supportsPointerInteraction
);
if
([
XCUIDevice
.
sharedDevice
respondsToSelector
:
supportsPointerInteractionSelector
])
{
supportsPointerInteraction
=
performBoolSelector
(
XCUIDevice
.
sharedDevice
,
supportsPointerInteractionSelector
);
}
XCTSkipUnless
(
supportsPointerInteraction
,
"Device does not support pointer interaction."
);
XCUIApplication
*
app
=
[[
XCUIApplication
alloc
]
init
];
app
.
launchArguments
=
@[
@"--pointer-events"
];
[
app
launch
];
NSPredicate
*
predicateToFindFlutterView
=
[
NSPredicate
predicateWithBlock
:
^
BOOL
(
id
_Nullable
evaluatedObject
,
NSDictionary
<
NSString
*
,
id
>*
_Nullable
bindings
)
{
XCUIElement
*
element
=
evaluatedObject
;
return
[
element
.
identifier
hasPrefix
:
@"flutter_view"
];
}];
XCUIElement
*
flutterView
=
[[
app
descendantsMatchingType
:
XCUIElementTypeAny
]
elementMatchingPredicate:
predicateToFindFlutterView
];
if
(
!
[
flutterView
waitForExistenceWithTimeout
:
kSecondsToWaitForFlutterView
])
{
NSLog
(
@"%@"
,
app
.
debugDescription
);
XCTFail
(
@"Failed due to not able to find any flutterView with %@ seconds"
,
@
(
kSecondsToWaitForFlutterView
));
}
NSPredicate
*
predicateToFindFlutterView
=
[
NSPredicate
predicateWithBlock
:
^
BOOL
(
id
_Nullable
evaluatedObject
,
NSDictionary
<
NSString
*
,
id
>*
_Nullable
bindings
)
{
XCUIElement
*
element
=
evaluatedObject
;
return
[
element
.
identifier
hasPrefix
:
@"flutter_view"
];
}];
XCUIElement
*
flutterView
=
[[
app
descendantsMatchingType
:
XCUIElementTypeAny
]
elementMatchingPredicate:
predicateToFindFlutterView
];
if
(
!
[
flutterView
waitForExistenceWithTimeout
:
kSecondsToWaitForFlutterView
])
{
NSLog
(
@"%@"
,
app
.
debugDescription
);
XCTFail
(
@"Failed due to not able to find any flutterView with %@ seconds"
,
@
(
kSecondsToWaitForFlutterView
));
}
XCTAssertNotNil
(
flutterView
);
XCTAssertNotNil
(
flutterView
);
[
flutterView
tap
];
// Initial add event should have buttons = 0
XCTAssertTrue
([
app
.
textFields
[
@"PointerChange.add:0"
]
waitForExistenceWithTimeout
:
1
],
@"PointerChange.add event did not occur"
);
// Normal tap should have buttons = 0, the flutter framework will ensure it has buttons = 1
XCTAssertTrue
([
app
.
textFields
[
@"PointerChange.down:0"
]
waitForExistenceWithTimeout
:
1
],
@"PointerChange.down event did not occur for a normal tap"
);
XCTAssertTrue
([
app
.
textFields
[
@"PointerChange.up:0"
]
waitForExistenceWithTimeout
:
1
],
@"PointerChange.up event did not occur for a normal tap"
);
[
flutterView
rightClick
];
// Since each touch is its own device, we can't distinguish the other add event(s)
// Right click should have buttons = 2
XCTAssertTrue
([
app
.
textFields
[
@"PointerChange.down:2"
]
waitForExistenceWithTimeout
:
1
],
@"PointerChange.down event did not occur for a right-click"
);
XCTAssertTrue
([
app
.
textFields
[
@"PointerChange.up:2"
]
waitForExistenceWithTimeout
:
1
],
@"PointerChange.up event did not occur for a right-click"
);
NSLog
(
@"DebugDescriptionX: %@"
,
app
.
debugDescription
);
}
[
flutterView
tap
];
// Initial add event should have buttons = 0
XCTAssertTrue
([
app
.
textFields
[
@"PointerChange.add:0"
]
waitForExistenceWithTimeout
:
1
],
@"PointerChange.add event did not occur"
);
// Normal tap should have buttons = 0, the flutter framework will ensure it has buttons = 1
XCTAssertTrue
([
app
.
textFields
[
@"PointerChange.down:0"
]
waitForExistenceWithTimeout
:
1
],
@"PointerChange.down event did not occur for a normal tap"
);
XCTAssertTrue
([
app
.
textFields
[
@"PointerChange.up:0"
]
waitForExistenceWithTimeout
:
1
],
@"PointerChange.up event did not occur for a normal tap"
);
SEL
rightClick
=
@selector
(
rightClick
);
XCTAssertTrue
([
flutterView
respondsToSelector
:
rightClick
],
@"If supportsPointerInteraction is true, this should be true too."
);
[
flutterView
performSelector
:
rightClick
];
// Since each touch is its own device, we can't distinguish the other add event(s)
// Right click should have buttons = 2
XCTAssertTrue
([
app
.
textFields
[
@"PointerChange.down:2"
]
waitForExistenceWithTimeout
:
1
],
@"PointerChange.down event did not occur for a right-click"
);
XCTAssertTrue
([
app
.
textFields
[
@"PointerChange.up:2"
]
waitForExistenceWithTimeout
:
1
],
@"PointerChange.up event did not occur for a right-click"
);
}
#
endif
#
pragma clang diagnostic pop
@end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录