API test fix after r225288.
authorsimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Nov 2017 00:18:05 +0000 (00:18 +0000)
committersimon.fraser@apple.com <simon.fraser@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Nov 2017 00:18:05 +0000 (00:18 +0000)
Make the test work on iOS.

* TestWebKitAPI/Tests/WebKit/NoHistoryItemScrollToFragment.mm:
(-[DidScrollToFragmentScrollViewDelegate scrollViewDidScroll:]):
(TestWebKitAPI::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@225302 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Tools/ChangeLog
Tools/TestWebKitAPI/Tests/WebKit/NoHistoryItemScrollToFragment.mm

index fa5863c..7ee0169 100644 (file)
@@ -1,5 +1,15 @@
 2017-11-29  Simon Fraser  <simon.fraser@apple.com>
 
+        API test fix after r225288.
+
+        Make the test work on iOS.
+
+        * TestWebKitAPI/Tests/WebKit/NoHistoryItemScrollToFragment.mm:
+        (-[DidScrollToFragmentScrollViewDelegate scrollViewDidScroll:]):
+        (TestWebKitAPI::TEST):
+
+2017-11-29  Simon Fraser  <simon.fraser@apple.com>
+
         REGRESSION (r213590): Scrolling to anchors broken in web views when content loaded via HTML string
         https://bugs.webkit.org/show_bug.cgi?id=180155
         rdar://problem/34220827
index 56df1fe..8c2c3d8 100644 (file)
@@ -37,6 +37,7 @@
 
 static bool testDone;
 
+#if PLATFORM(MAC)
 @interface DidScrollToFragmentDelegate : NSObject <WKUIDelegatePrivate>
 @end
 
@@ -49,6 +50,25 @@ static bool testDone;
 
 @end
 
+#endif
+#if PLATFORM(IOS)
+
+@interface DidScrollToFragmentScrollViewDelegate : NSObject <UIScrollViewDelegate>
+
+@end
+
+@implementation DidScrollToFragmentScrollViewDelegate
+
+- (void)scrollViewDidScroll:(UIScrollView *)scrollView
+{
+    // Ignore scrolls to 0,0 and from inset changes.
+    if (scrollView.contentOffset.y > 300)
+        testDone = true;
+}
+
+@end
+#endif
+
 namespace TestWebKitAPI {
 
 TEST(WebKit, NoHistoryItemScrollToFragment)
@@ -56,8 +76,15 @@ TEST(WebKit, NoHistoryItemScrollToFragment)
     auto configuration = adoptNS([[WKWebViewConfiguration alloc] init]);
     auto processPoolConfig = adoptNS([[_WKProcessPoolConfiguration alloc] init]);
     auto webView = adoptNS([[TestWKWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 500) configuration:configuration.get() processPoolConfiguration:processPoolConfig.get()]);
+
+#if PLATFORM(MAC)
     auto delegate = adoptNS([[DidScrollToFragmentDelegate alloc] init]);
     [webView setUIDelegate:delegate.get()];
+#endif
+#if PLATFORM(IOS)
+    auto delegateForScrollView = adoptNS([[DidScrollToFragmentScrollViewDelegate alloc] init]);
+    [webView scrollView].delegate = delegateForScrollView.get();
+#endif
 
     NSURL* resourceURL = [[NSBundle mainBundle] URLForResource:@"scroll-to-anchor" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"];
     NSString *testFileContents = [NSString stringWithContentsOfURL:resourceURL encoding:NSUTF8StringEncoding error:nil];