blob: b44a080ee47a58ab36733530d7aad92300d76479 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@import Flutter;
@import XCTest;
@import webview_flutter_wkwebview;
#import <OCMock/OCMock.h>
@interface FWFScrollViewHostApiTests : XCTestCase
@end
@implementation FWFScrollViewHostApiTests
- (void)testGetContentOffset {
UIScrollView *mockScrollView = OCMClassMock([UIScrollView class]);
OCMStub([mockScrollView contentOffset]).andReturn(CGPointMake(1.0, 2.0));
FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init];
[instanceManager addDartCreatedInstance:mockScrollView withIdentifier:0];
FWFScrollViewHostApiImpl *hostAPI =
[[FWFScrollViewHostApiImpl alloc] initWithInstanceManager:instanceManager];
FlutterError *error;
NSArray<NSNumber *> *expectedValue = @[ @1.0, @2.0 ];
XCTAssertEqualObjects([hostAPI contentOffsetForScrollViewWithIdentifier:0 error:&error],
expectedValue);
XCTAssertNil(error);
}
- (void)testScrollBy {
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)];
scrollView.contentOffset = CGPointMake(1, 2);
FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init];
[instanceManager addDartCreatedInstance:scrollView withIdentifier:0];
FWFScrollViewHostApiImpl *hostAPI =
[[FWFScrollViewHostApiImpl alloc] initWithInstanceManager:instanceManager];
FlutterError *error;
[hostAPI scrollByForScrollViewWithIdentifier:0 x:1 y:2 error:&error];
XCTAssertEqual(scrollView.contentOffset.x, 2);
XCTAssertEqual(scrollView.contentOffset.y, 4);
XCTAssertNil(error);
}
- (void)testSetContentOffset {
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 500, 500)];
FWFInstanceManager *instanceManager = [[FWFInstanceManager alloc] init];
[instanceManager addDartCreatedInstance:scrollView withIdentifier:0];
FWFScrollViewHostApiImpl *hostAPI =
[[FWFScrollViewHostApiImpl alloc] initWithInstanceManager:instanceManager];
FlutterError *error;
[hostAPI setContentOffsetForScrollViewWithIdentifier:0 toX:1 y:2 error:&error];
XCTAssertEqual(scrollView.contentOffset.x, 1);
XCTAssertEqual(scrollView.contentOffset.y, 2);
XCTAssertNil(error);
}
@end