1aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org/* 2aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org * Copyright 2014 Google Inc. 3aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org * 4aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org * Use of this source code is governed by a BSD-style license that can be 5aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org * found in the LICENSE file. 6aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org */ 7aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 8aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org#include "Test.h" 9aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 10aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org#include "SkPathEffect.h" 11aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org#include "SkDashPathEffect.h" 12aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org#include "SkCornerPathEffect.h" 13aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 14aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.orgDEF_TEST(AsADashTest_noneDash, reporter) { 15aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkAutoTUnref<SkCornerPathEffect> pe(SkCornerPathEffect::Create(1.0)); 16aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkPathEffect::DashInfo info; 17aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 18aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkPathEffect::DashType dashType = pe->asADash(&info); 19aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org REPORTER_ASSERT(reporter, SkPathEffect::kNone_DashType == dashType); 20aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org} 21aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 22aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.orgDEF_TEST(AsADashTest_nullInfo, reporter) { 23aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkScalar inIntervals[] = { 4.0, 2.0, 1.0, 3.0 }; 24aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org const SkScalar phase = 2.0; 25aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkAutoTUnref<SkDashPathEffect> pe(SkDashPathEffect::Create(inIntervals, 4, phase)); 26aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 27aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkPathEffect::DashType dashType = pe->asADash(NULL); 28aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org REPORTER_ASSERT(reporter, SkPathEffect::kDash_DashType == dashType); 29aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org} 30aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 31aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.orgDEF_TEST(AsADashTest_usingDash, reporter) { 32aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkScalar inIntervals[] = { 4.0, 2.0, 1.0, 3.0 }; 33aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkScalar totalIntSum = 10.0; 34aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org const SkScalar phase = 2.0; 35aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 36aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkAutoTUnref<SkDashPathEffect> pe(SkDashPathEffect::Create(inIntervals, 4, phase)); 37aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 38aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkPathEffect::DashInfo info; 39aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 40aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkPathEffect::DashType dashType = pe->asADash(&info); 41aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org REPORTER_ASSERT(reporter, SkPathEffect::kDash_DashType == dashType); 42aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org REPORTER_ASSERT(reporter, 4 == info.fCount); 43aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org REPORTER_ASSERT(reporter, SkScalarMod(phase, totalIntSum) == info.fPhase); 44aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 45aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org // Since it is a kDash_DashType, allocate space for the intervals and recall asADash 46aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org SkAutoTArray<SkScalar> intervals(info.fCount); 47aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org info.fIntervals = intervals.get(); 48aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org pe->asADash(&info); 49aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org REPORTER_ASSERT(reporter, inIntervals[0] == info.fIntervals[0]); 50aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org REPORTER_ASSERT(reporter, inIntervals[1] == info.fIntervals[1]); 51aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org REPORTER_ASSERT(reporter, inIntervals[2] == info.fIntervals[2]); 52aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org REPORTER_ASSERT(reporter, inIntervals[3] == info.fIntervals[3]); 53aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org 54aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org // Make sure nothing else has changed on us 55aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org REPORTER_ASSERT(reporter, 4 == info.fCount); 56aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org REPORTER_ASSERT(reporter, SkScalarMod(phase, totalIntSum) == info.fPhase); 57aec143824c9be4e4af6e2cb7cce3d2d2268c0b15commit-bot@chromium.org} 58