Changeset 287343 in webkit


Ignore:
Timestamp:
Dec 21, 2021, 8:18:57 PM (3 years ago)
Author:
achristensen@apple.com
Message:

Re-enable ContextMenu API tests
https://bugs.webkit.org/show_bug.cgi?id=234585
Source/WebKit:

<rdar://59610140>

Reviewed by Tim Horton.

UIKit changed the internal driver interface to simulate events to show context menus for our tests.
This follows the change and makes our tests work again.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _registerPreview]):

Tools:

Reviewed by Tim Horton.

  • TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:

(TEST):

  • TestWebKitAPI/cocoa/TestContextMenuDriver.h:
  • TestWebKitAPI/cocoa/TestContextMenuDriver.mm:

(+[TestContextMenuDriver prefersCancelsTouchesInView]):
(-[TestContextMenuDriver cancelsTouchesInView]):
(-[TestContextMenuDriver setCancelsTouchesInView:]):

Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r287339 r287343  
     12021-12-21  Alex Christensen  <achristensen@webkit.org>
     2
     3        Re-enable ContextMenu API tests
     4        https://bugs.webkit.org/show_bug.cgi?id=234585
     5        <rdar://59610140>
     6
     7        Reviewed by Tim Horton.
     8
     9        UIKit changed the internal driver interface to simulate events to show context menus for our tests.
     10        This follows the change and makes our tests work again.
     11
     12        * Platform/spi/ios/UIKitSPI.h:
     13        * UIProcess/ios/WKContentViewInteraction.mm:
     14        (-[WKContentView _registerPreview]):
     15
    1162021-12-21  Brady Eidson  <beidson@apple.com>
    217
  • trunk/Source/WebKit/Platform/spi/ios/UIKitSPI.h

    r286879 r287343  
    13891389
    13901390@interface _UIClickPresentationInteraction (IPI)
    1391 @property (nonatomic, strong) _UIClickInteraction *previewClickInteraction;
    1392 @end
    1393 
    1394 @interface _UIClickInteraction (IPI)
    1395 @property (nonatomic, strong) id<_UIClickInteractionDriving> driver;
     1391@property (nonatomic, strong /*, nullable */) NSArray<id<_UIClickInteractionDriving>> *overrideDrivers;
    13961392@end
    13971393
  • trunk/Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm

    r287138 r287343  
    1078710787        [self addInteraction:_contextMenuInteraction.get()];
    1078810788
    10789         if (id<_UIClickInteractionDriving> driver = self.webView.configuration._clickInteractionDriverForTesting) {
    10790             _UIClickInteraction *previewClickInteraction = [[_contextMenuInteraction presentationInteraction] previewClickInteraction];
    10791             [previewClickInteraction setDriver:driver];
    10792             [driver setDelegate:(id<_UIClickInteractionDriverDelegate>)previewClickInteraction];
    10793         }
     10789        if (id<_UIClickInteractionDriving> driver = self.webView.configuration._clickInteractionDriverForTesting)
     10790            [_contextMenuInteraction presentationInteraction].overrideDrivers = @[driver];
    1079410791        return;
    1079510792    }
  • trunk/Tools/ChangeLog

    r287342 r287343  
     12021-12-21  Alex Christensen  <achristensen@webkit.org>
     2
     3        Re-enable ContextMenu API tests
     4        https://bugs.webkit.org/show_bug.cgi?id=234585
     5
     6        Reviewed by Tim Horton.
     7
     8        * TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm:
     9        (TEST):
     10        * TestWebKitAPI/cocoa/TestContextMenuDriver.h:
     11        * TestWebKitAPI/cocoa/TestContextMenuDriver.mm:
     12        (+[TestContextMenuDriver prefersCancelsTouchesInView]):
     13        (-[TestContextMenuDriver cancelsTouchesInView]):
     14        (-[TestContextMenuDriver setCancelsTouchesInView:]):
     15
    1162021-12-21  Alex Christensen  <achristensen@webkit.org>
    217
  • trunk/Tools/TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm

    r285547 r287343  
    102102@end
    103103
    104 // FIXME: Re-enable this test once rdar://59610140 is resolved
    105 TEST(ContextMenu, DISABLED_Click)
     104TEST(ContextMenu, Click)
    106105{
    107106    auto driver = contextMenuWebViewDriver([TestContextMenuUIDelegate class]);
    108107    [driver begin:^(BOOL result) {
    109         EXPECT_TRUE(result);
     108        EXPECT_FALSE(result);
    110109        [driver clickDown];
    111110        [driver clickUp];
     
    118117}
    119118
    120 // FIXME: Re-enable this test once rdar://59610140 is resolved
    121 TEST(ContextMenu, DISABLED_End)
     119TEST(ContextMenu, End)
    122120{
    123121    auto driver = contextMenuWebViewDriver([TestContextMenuUIDelegate class]);
    124122    [driver begin:^(BOOL result) {
    125         EXPECT_TRUE(result);
     123        EXPECT_FALSE(result);
    126124        [driver end];
    127125    }];
     
    165163@end
    166164
    167 // FIXME: Re-enable this test once rdar://59610140 is resolved
    168 TEST(ContextMenu, DISABLED_APIBeforeSPI)
     165TEST(ContextMenu, APIBeforeSPI)
    169166{
    170167    auto driver = contextMenuWebViewDriver([TestContextMenuAPIBeforeSPIUIDelegate class]);
    171168    [driver begin:^(BOOL result) {
    172         EXPECT_TRUE(result);
     169        EXPECT_FALSE(result);
    173170        [driver clickDown];
    174171        [driver clickUp];
     
    214211@end
    215212
    216 // FIXME: Re-enable this test once rdar://59610140 is resolved
    217 TEST(ContextMenu, DISABLED_Image)
     213TEST(ContextMenu, Image)
    218214{
    219215    linkURL = [NSURL URLWithString:@"http://127.0.0.1/image"];
    220216    auto driver = contextMenuWebViewDriver([TestContextMenuImageUIDelegate class], @"<img style='width:400px;height:400px' src='data:image/png;base64,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'>");
    221217    [driver begin:^(BOOL result) {
    222         EXPECT_TRUE(result);
     218        EXPECT_FALSE(result);
    223219        [driver clickDown];
    224220        [driver clickUp];
     
    283279@end
    284280
    285 // FIXME: Re-enable this test once rdar://59610140 is resolved
    286 TEST(ContextMenu, DISABLED_Legacy)
     281TEST(ContextMenu, Legacy)
    287282{
    288283    auto driver = contextMenuWebViewDriver([LegacyContextMenuUIDelegate class]);
    289284    [driver begin:^(BOOL result) {
    290         EXPECT_TRUE(result);
     285        EXPECT_FALSE(result);
    291286        [driver clickDown];
    292287        [driver clickUp];
     
    340335
    341336
    342 // FIXME: Re-enable this test once rdar://59610140 is resolved
    343 TEST(ContextMenu, DISABLED_SuggestedActions)
     337TEST(ContextMenu, SuggestedActions)
    344338{
    345339    auto driver = contextMenuWebViewDriver([TestContextMenuSuggestedActionsUIDelegate class]);
    346340    [driver begin:^(BOOL result) {
    347         EXPECT_TRUE(result);
     341        EXPECT_FALSE(result);
    348342        [driver clickDown];
    349343        [driver clickUp];
     
    372366@end
    373367
    374 // FIXME: Re-enable this test once rdar://59610140 is resolved
    375 TEST(ContextMenu, DISABLED_HintPreviewContainer)
     368TEST(ContextMenu, HintPreviewContainer)
    376369{
    377370    auto driver = contextMenuWebViewDriver([TestContextMenuHintPreviewContainerUIDelegate class]);
    378371    [driver begin:^(BOOL result) {
    379         EXPECT_TRUE(result);
     372        EXPECT_FALSE(result);
    380373        [driver clickDown];
    381374        [driver clickUp];
  • trunk/Tools/TestWebKitAPI/cocoa/TestContextMenuDriver.h

    r270565 r287343  
    3939    RetainPtr<UIGestureRecognizer> _primaryGestureRecognizer;
    4040    NSTimeInterval _touchDuration;
     41    BOOL _cancelsTouchesInView;
    4142}
    4243
     
    4546- (void)clickUp;
    4647- (void)end;
     48+ (BOOL)prefersCancelsTouchesInView;
    4749@end
    4850
  • trunk/Tools/TestWebKitAPI/cocoa/TestContextMenuDriver.mm

    r270565 r287343  
    117117}
    118118
     119+ (BOOL)prefersCancelsTouchesInView
     120{
     121    return NO;
     122}
     123
     124- (BOOL)cancelsTouchesInView
     125{
     126    return _cancelsTouchesInView;
     127}
     128
     129- (void)setCancelsTouchesInView:(BOOL)cancelsTouchesInView
     130{
     131    _cancelsTouchesInView = cancelsTouchesInView;
     132}
     133
    119134@end
    120135
Note: See TracChangeset for help on using the changeset viewer.