Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(25)

Side by Side Diff: ios/web/web_state/ui/crw_web_controller_unittest.mm

Issue 1168523004: Revert of Added CGFloat comparison functions. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | testing/gtest_mac.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "ios/web/web_state/ui/crw_web_controller.h" 5 #import "ios/web/web_state/ui/crw_web_controller.h"
6 6
7 #import <UIKit/UIKit.h> 7 #import <UIKit/UIKit.h>
8 #import <WebKit/WebKit.h> 8 #import <WebKit/WebKit.h>
9 9
10 #include "base/mac/scoped_nsobject.h" 10 #include "base/mac/scoped_nsobject.h"
(...skipping 896 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 CGFloat original_minimum_zoom_scale, 907 CGFloat original_minimum_zoom_scale,
908 CGFloat original_maximum_zoom_scale, 908 CGFloat original_maximum_zoom_scale,
909 CGFloat original_zoom_scale) const { 909 CGFloat original_zoom_scale) const {
910 return web::PageScrollState( 910 return web::PageScrollState(
911 scroll_offset.x, scroll_offset.y, original_minimum_zoom_scale, 911 scroll_offset.x, scroll_offset.y, original_minimum_zoom_scale,
912 original_maximum_zoom_scale, 912 original_maximum_zoom_scale,
913 relative_zoom_scale * original_minimum_zoom_scale); 913 relative_zoom_scale * original_minimum_zoom_scale);
914 } 914 }
915 }; 915 };
916 916
917 // Helper function for comparing two CGFloats.
918 bool CGFloatsAreEqual(CGFloat val1, CGFloat val2) {
919 return std::fabs(val1 - val2) < std::numeric_limits<CGFloat>::epsilon();
920 }
921
922 WEB_TEST_F(CRWUIWebControllerPageScrollStateTest, 917 WEB_TEST_F(CRWUIWebControllerPageScrollStateTest,
923 CRWWKWebControllerPageScrollStateTest, 918 CRWWKWebControllerPageScrollStateTest,
924 SetPageStateWithUserScalableDisabled) { 919 SetPageStateWithUserScalableDisabled) {
925 #if !TARGET_IPHONE_SIMULATOR 920 #if !TARGET_IPHONE_SIMULATOR
926 // This test fails flakily on device with WKWebView, so skip it there. 921 // This test fails flakily on device with WKWebView, so skip it there.
927 // crbug.com/453530 922 // crbug.com/453530
928 if ([this->webController_ webViewType] == web::WK_WEB_VIEW_TYPE) 923 if ([this->webController_ webViewType] == web::WK_WEB_VIEW_TYPE)
929 return; 924 return;
930 #endif 925 #endif
931 this->LoadHtml(@"<html><head>" 926 this->LoadHtml(@"<html><head>"
(...skipping 11 matching lines...) Expand all
943 this->CreateTestScrollState(CGPointMake(1.0, 1.0), // scroll offset 938 this->CreateTestScrollState(CGPointMake(1.0, 1.0), // scroll offset
944 3.0, // relative zoom scale 939 3.0, // relative zoom scale
945 1.0, // original minimum zoom scale 940 1.0, // original minimum zoom scale
946 5.0, // original maximum zoom scale 941 5.0, // original maximum zoom scale
947 1.0); // original zoom scale 942 1.0); // original zoom scale
948 [this->webController_ setPageScrollState:scrollState]; 943 [this->webController_ setPageScrollState:scrollState];
949 944
950 // setPageState: is async; wait for its completion. 945 // setPageState: is async; wait for its completion.
951 scrollView = [[[this->webController_ view] subviews][0] scrollView]; 946 scrollView = [[[this->webController_ view] subviews][0] scrollView];
952 base::test::ios::WaitUntilCondition(^bool() { 947 base::test::ios::WaitUntilCondition(^bool() {
953 return CGFloatsAreEqual(scrollView.contentOffset.x, 1.0f); 948 return [scrollView contentOffset].x == 1.0f;
954 }); 949 });
955 950
956 ASSERT_CGFLOAT_EQ(originZoomScale, scrollView.zoomScale); 951 ASSERT_EQ(originZoomScale, scrollView.zoomScale);
957 ASSERT_CGFLOAT_EQ(originMinimumZoomScale, scrollView.minimumZoomScale); 952 ASSERT_EQ(originMinimumZoomScale, scrollView.minimumZoomScale);
958 ASSERT_CGFLOAT_EQ(originMaximumZoomScale, scrollView.maximumZoomScale); 953 ASSERT_EQ(originMaximumZoomScale, scrollView.maximumZoomScale);
959 }; 954 };
960 955
961 WEB_TEST_F(CRWUIWebControllerPageScrollStateTest, 956 WEB_TEST_F(CRWUIWebControllerPageScrollStateTest,
962 CRWWKWebControllerPageScrollStateTest, 957 CRWWKWebControllerPageScrollStateTest,
963 SetPageStateWithUserScalableEnabled) { 958 SetPageStateWithUserScalableEnabled) {
964 this->LoadHtml(@"<html><head>" 959 this->LoadHtml(@"<html><head>"
965 "<meta name='viewport' content=" 960 "<meta name='viewport' content="
966 "'width=device-width,maximum-scale=10,initial-scale=1.0'" 961 "'width=device-width,maximum-scale=10,initial-scale=1.0'"
967 " /></head><body>Test</body></html>"); 962 " /></head><body>Test</body></html>");
968 963
969 ui::test::uiview_utils::ForceViewRendering([this->webController_ view]); 964 ui::test::uiview_utils::ForceViewRendering([this->webController_ view]);
970 web::PageScrollState scrollState = 965 web::PageScrollState scrollState =
971 this->CreateTestScrollState(CGPointMake(1.0, 1.0), // scroll offset 966 this->CreateTestScrollState(CGPointMake(1.0, 1.0), // scroll offset
972 3.0, // relative zoom scale 967 3.0, // relative zoom scale
973 1.0, // original minimum zoom scale 968 1.0, // original minimum zoom scale
974 10.0, // original maximum zoom scale 969 10.0, // original maximum zoom scale
975 1.0); // original zoom scale 970 1.0); // original zoom scale
976 [this->webController_ setPageScrollState:scrollState]; 971 [this->webController_ setPageScrollState:scrollState];
977 972
978 // setPageState: is async; wait for its completion. 973 // setPageState: is async; wait for its completion.
979 id webView = [[this->webController_ view] subviews][0]; 974 id webView = [[this->webController_ view] subviews][0];
980 UIScrollView* scrollView = [webView scrollView]; 975 UIScrollView* scrollView = [webView scrollView];
981 base::test::ios::WaitUntilCondition(^bool() { 976 base::test::ios::WaitUntilCondition(^bool() {
982 return CGFloatsAreEqual(scrollView.contentOffset.x, 1.0f); 977 return [scrollView contentOffset].x == 1.0f;
983 }); 978 });
984 979
985 ASSERT_FLOAT_EQ(3, scrollView.zoomScale / scrollView.minimumZoomScale); 980 EXPECT_FLOAT_EQ(3, scrollView.zoomScale / scrollView.minimumZoomScale);
986 }; 981 };
987 982
988 WEB_TEST_F(CRWUIWebControllerPageScrollStateTest, 983 WEB_TEST_F(CRWUIWebControllerPageScrollStateTest,
989 CRWWKWebControllerPageScrollStateTest, 984 CRWWKWebControllerPageScrollStateTest,
990 AtTop) { 985 AtTop) {
991 // This test fails on iPhone 6/6+ with WKWebView; skip until it's fixed. 986 // This test fails on iPhone 6/6+ with WKWebView; skip until it's fixed.
992 // crbug.com/453105 987 // crbug.com/453105
993 if ([this->webController_ webViewType] == web::WK_WEB_VIEW_TYPE && 988 if ([this->webController_ webViewType] == web::WK_WEB_VIEW_TYPE &&
994 IsIPhone6Or6Plus()) 989 IsIPhone6Or6Plus())
995 return; 990 return;
996 991
997 this->LoadHtml(@"<html><head>" 992 this->LoadHtml(@"<html><head>"
998 "<meta name='viewport' content=" 993 "<meta name='viewport' content="
999 "'width=device-width,maximum-scale=5.0,initial-scale=1.0'" 994 "'width=device-width,maximum-scale=5.0,initial-scale=1.0'"
1000 " /></head><body>Test</body></html>"); 995 " /></head><body>Test</body></html>");
1001 ASSERT_TRUE(this->webController_.get().atTop); 996 ASSERT_TRUE(this->webController_.get().atTop);
1002 997
1003 web::PageScrollState scrollState = 998 web::PageScrollState scrollState =
1004 this->CreateTestScrollState(CGPointMake(0.0, 30.0), // scroll offset 999 this->CreateTestScrollState(CGPointMake(0.0, 30.0), // scroll offset
1005 5.0, // relative zoom scale 1000 5.0, // relative zoom scale
1006 1.0, // original minimum zoom scale 1001 1.0, // original minimum zoom scale
1007 5.0, // original maximum zoom scale 1002 5.0, // original maximum zoom scale
1008 1.0); // original zoom scale 1003 1.0); // original zoom scale
1009 [this->webController_ setPageScrollState:scrollState]; 1004 [this->webController_ setPageScrollState:scrollState];
1010 1005
1011 // setPageState: is async; wait for its completion. 1006 // setPageState: is async; wait for its completion.
1012 id webView = [[this->webController_ view] subviews][0]; 1007 id webView = [[this->webController_ view] subviews][0];
1013 base::test::ios::WaitUntilCondition(^bool() { 1008 base::test::ios::WaitUntilCondition(^bool() {
1014 return CGFloatsAreEqual([webView scrollView].contentOffset.y, 30.0f); 1009 return [[webView scrollView] contentOffset].y == 30.0f;
1015 }); 1010 });
1016 1011
1017 ASSERT_FALSE([this->webController_ atTop]); 1012 ASSERT_FALSE([this->webController_ atTop]);
1018 }; 1013 };
1019 1014
1020 // Tests that evaluateJavaScript:completionHandler: properly forwards the 1015 // Tests that evaluateJavaScript:completionHandler: properly forwards the
1021 // call to UIWebView. 1016 // call to UIWebView.
1022 TEST_F(CRWUIWebViewWebControllerTest, JavaScriptEvaluation) { 1017 TEST_F(CRWUIWebViewWebControllerTest, JavaScriptEvaluation) {
1023 NSString* kTestScript = @"script"; 1018 NSString* kTestScript = @"script";
1024 NSString* kTestResult = @"result"; 1019 NSString* kTestResult = @"result";
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
1477 // https://bugs.webkit.org/show_bug.cgi?id=140203 1472 // https://bugs.webkit.org/show_bug.cgi?id=140203
1478 VLOG(1) << "Script has been flushed."; 1473 VLOG(1) << "Script has been flushed.";
1479 }]; 1474 }];
1480 // -evaluateJavaScript:stringResultHandler: is asynchronous so JavaScript 1475 // -evaluateJavaScript:stringResultHandler: is asynchronous so JavaScript
1481 // evaluation will not happen until TearDown, which deallocates 1476 // evaluation will not happen until TearDown, which deallocates
1482 // CRWWebController, which in its turn will deallocate WKWebView to create a 1477 // CRWWebController, which in its turn will deallocate WKWebView to create a
1483 // crashy condition. 1478 // crashy condition.
1484 }; 1479 };
1485 1480
1486 } // namespace 1481 } // namespace
OLDNEW
« no previous file with comments | « no previous file | testing/gtest_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698