1/* 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium' 17import { UiDriver, BY, UiComponent, MatchPattern } from '@ohos.uitest' 18import featureAbility from '@ohos.ability.featureAbility' 19import hilog from '@ohos.hilog' 20 21const TAG = '[Sample_Canvas]' 22const DOMAIN = 0xF811 23const BUNDLE = 'Canvas_' 24 25export default function appTest() { 26 describe('appTest', function () { 27 it(BUNDLE + 'StartAbility_001', 0, async function (done) { 28 hilog.info(DOMAIN, TAG, BUNDLE + 'StartAbility_001 begin') 29 let parameter = { 30 "want": { 31 bundleName: "ohos.samples.etscanvas", 32 abilityName: "ohos.samples.etscanvas.MainAbility" 33 } 34 } 35 await featureAbility.startAbility(parameter, (err, data) => { 36 hilog.info(DOMAIN, TAG, BUNDLE + 'StartAbility_001,err.code:' + err.code) 37 expect(0).assertEqual(err.code) 38 done() 39 hilog.info(DOMAIN, TAG, BUNDLE + 'StartAbility_001 end') 40 }) 41 }) 42 43 /** 44 * RenderingContext 45 */ 46 it(BUNDLE + 'RenderingContextFunction_001', 0, async function () { 47 // create UiDriver 48 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContextFunction_001 begin') 49 let driver = await UiDriver.create() 50 await driver.delayMs(1000) 51 // RenderingContext 52 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContextFunction_001 RenderingContext') 53 await driver.assertComponentExist(BY.key('item1')) 54 let renderingCon = await driver.findComponent(BY.key('item1')) 55 await renderingCon.click() 56 await driver.delayMs(1000) 57 // arc 58 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContextFunction_001 arc') 59 await driver.assertComponentExist(BY.key('arc')) 60 let arcBtn = await driver.findComponent(BY.key('arc')) 61 await arcBtn.click() 62 await driver.delayMs(1000) 63 // strokeText 64 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContextFunction_001 strokeText') 65 await driver.assertComponentExist(BY.key('strokeText')) 66 let strokeTextBtn = await driver.findComponent(BY.key('strokeText')) 67 await strokeTextBtn.click() 68 await driver.delayMs(1000) 69 // closePath 70 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContextFunction_001 closePath') 71 await driver.assertComponentExist(BY.key('closePath')) 72 let closePathBtn = await driver.findComponent(BY.key('closePath')) 73 await closePathBtn.click() 74 await driver.delayMs(1000) 75 // quadraticCurveTo 76 hilog.info(DOMAIN, TAG, BUNDLE + BUNDLE + 'RenderingContextFunction_001 quadraticCurveTo') 77 await driver.assertComponentExist(BY.key('quadraticCurveTo')) 78 let quadraticCurveToBtn = await driver.findComponent(BY.key('quadraticCurveTo')) 79 await quadraticCurveToBtn.click() 80 await driver.delayMs(1000) 81 // textBaseline 82 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContextFunction_001 textBaseline') 83 await driver.assertComponentExist(BY.key('textBaseline')) 84 let textBaselineBtn = await driver.findComponent(BY.key('textBaseline')) 85 await textBaselineBtn.click() 86 await driver.delayMs(1000) 87 // delete 88 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContextFunction_001 delete') 89 await driver.assertComponentExist(BY.key('delete')) 90 let deleteBtn = await driver.findComponent(BY.key('delete')) 91 await deleteBtn.click() 92 await driver.delayMs(1000) 93 // back 94 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContextFunction_001 back') 95 await driver.assertComponentExist(BY.key('back')) 96 let backBtn = await driver.findComponent(BY.key('back')) 97 await backBtn.click() 98 await driver.delayMs(1000) 99 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContextFunction_001 end') 100 }) 101 102 /** 103 * RenderingContext1 104 */ 105 it(BUNDLE + 'RenderingContext1Function_001', 0, async function () { 106 // create UiDriver 107 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext1Function_001 begin') 108 let driver = await UiDriver.create() 109 await driver.delayMs(1000) 110 // RenderingContext1 111 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext1Function_001 RenderingContext1') 112 await driver.assertComponentExist(BY.key('item2')) 113 let renderingCon1 = await driver.findComponent(BY.key('item2')) 114 await renderingCon1.click() 115 await driver.delayMs(1000) 116 // strokeStyle 117 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext1Function_001 strokeStyle') 118 await driver.assertComponentExist(BY.key('strokeStyle')) 119 let strokeStyleBtn = await driver.findComponent(BY.key('strokeStyle')) 120 await strokeStyleBtn.click() 121 await driver.delayMs(1000) 122 // lineCap 123 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext1Function_001 lineCap') 124 await driver.assertComponentExist(BY.key('lineCap')) 125 let lineCapBtn = await driver.findComponent(BY.key('lineCap')) 126 await lineCapBtn.click() 127 await driver.delayMs(1000) 128 // globalAlpha 129 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext1Function_001 globalAlpha') 130 await driver.assertComponentExist(BY.key('globalAlpha')) 131 let globalAlphaBtn = await driver.findComponent(BY.key('globalAlpha')) 132 await globalAlphaBtn.click() 133 await driver.delayMs(1000) 134 // textAlign 135 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext1Function_001 textAlign') 136 await driver.assertComponentExist(BY.key('textAlign')) 137 let textAlignBtn = await driver.findComponent(BY.key('textAlign')) 138 await textAlignBtn.click() 139 await driver.delayMs(1000) 140 // lineJoin 141 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext1Function_001 lineJoin') 142 await driver.assertComponentExist(BY.key('lineJoin')) 143 let lineJoinBtn = await driver.findComponent(BY.key('lineJoin')) 144 await lineJoinBtn.click() 145 await driver.delayMs(1000) 146 // miterLimit 147 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext1Function_001 miterLimit') 148 await driver.assertComponentExist(BY.key('miterLimit')) 149 let miterLimitBtn = await driver.findComponent(BY.key('miterLimit')) 150 await miterLimitBtn.click() 151 await driver.delayMs(1000) 152 // globalCompositeOperation 153 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext1Function_001 globalCompositeOperation') 154 await driver.assertComponentExist(BY.key('globalCompositeOperation')) 155 let globalCompositeOperationBtn = await driver.findComponent(BY.key('globalCompositeOperation')) 156 await globalCompositeOperationBtn.click() 157 await driver.delayMs(1000) 158 // delete 159 hilog.info(DOMAIN, TAG, 'RenderingContext1Function_001 delete') 160 await driver.assertComponentExist(BY.key('delete')) 161 let deleteBtn = await driver.findComponent(BY.key('delete')) 162 await deleteBtn.click() 163 await driver.delayMs(1000) 164 // back 165 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext1Function_001 back') 166 await driver.assertComponentExist(BY.key('back')) 167 let backBtn = await driver.findComponent(BY.key('back')) 168 await backBtn.click() 169 await driver.delayMs(1000) 170 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext1Function_001 end') 171 }) 172 173 /** 174 * RenderingContext2 175 */ 176 it(BUNDLE + 'RenderingContext2Function_001', 0, async function () { 177 // create UiDriver 178 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext2Function_001 begin') 179 let driver = await UiDriver.create() 180 await driver.delayMs(1000) 181 // RenderingContext2 182 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext2Function_001 RenderingContext2') 183 await driver.assertComponentExist(BY.key('item3')) 184 let renderingCon2 = await driver.findComponent(BY.key('item3')) 185 await renderingCon2.click() 186 await driver.delayMs(1000) 187 // arcTo 188 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext2Function_001 arcTo') 189 await driver.assertComponentExist(BY.key('arcTo')) 190 let arcToBtn = await driver.findComponent(BY.key('arcTo')) 191 await arcToBtn.click() 192 await driver.delayMs(1000) 193 // bezierCurveTo 194 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext2Function_001 bezierCurveTo') 195 await driver.assertComponentExist(BY.key('bezierCurveTo')) 196 let bezierCurveToBtn = await driver.findComponent(BY.key('bezierCurveTo')) 197 await bezierCurveToBtn.click() 198 await driver.delayMs(1000) 199 // ellipse 200 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext2Function_001 ellipse') 201 await driver.assertComponentExist(BY.key('ellipse')) 202 let ellipseBtn = await driver.findComponent(BY.key('ellipse')) 203 await ellipseBtn.click() 204 await driver.delayMs(1000) 205 // rect 206 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext2Function_001 rect') 207 await driver.assertComponentExist(BY.key('rect')) 208 let rectBtn = await driver.findComponent(BY.key('rect')) 209 await rectBtn.click() 210 await driver.delayMs(1000) 211 // createPattern 212 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext2Function_001 createPattern') 213 await driver.assertComponentExist(BY.key('createPattern')) 214 let createPatternBtn = await driver.findComponent(BY.key('createPattern')) 215 await createPatternBtn.click() 216 await driver.delayMs(1000) 217 // lineDashOffset 218 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext2Function_001 lineDashOffset') 219 await driver.assertComponentExist(BY.key('lineDashOffset')) 220 let lineDashOffsetBtn = await driver.findComponent(BY.key('lineDashOffset')) 221 await lineDashOffsetBtn.click() 222 await driver.delayMs(1000) 223 // scale 224 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext2Function_001 scale') 225 await driver.assertComponentExist(BY.key('scale')) 226 let scaleBtn = await driver.findComponent(BY.key('scale')) 227 await scaleBtn.click() 228 await driver.delayMs(1000) 229 // back 230 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext2Function_001 back') 231 await driver.assertComponentExist(BY.key('back')) 232 let backBtn = await driver.findComponent(BY.key('back')) 233 await backBtn.click() 234 await driver.delayMs(1000) 235 hilog.info(DOMAIN, TAG, BUNDLE + 'RenderingContext2Function_001 end') 236 }) 237 238 /** 239 * TransformExample 240 */ 241 it(BUNDLE + 'TransformExampleFunction_001', 0, async function () { 242 // create UiDriver 243 hilog.info(DOMAIN, TAG, BUNDLE + 'TransformExampleFunction_001 begin') 244 let driver = await UiDriver.create() 245 await driver.delayMs(1000) 246 console.log("Sample_Canvas 1") 247 // TransformExample 248 hilog.info(DOMAIN, TAG, BUNDLE + 'TransformExampleFunction_001 TransformExample') 249 await driver.assertComponentExist(BY.key('item4')) 250 let transform = await driver.findComponent(BY.key('item4')) 251 await transform.click() 252 await driver.delayMs(1000) 253 // translate 254 hilog.info(DOMAIN, TAG, BUNDLE + 'TransformExampleFunction_001 translate') 255 await driver.assertComponentExist(BY.key('translate')) 256 let translateBtn = await driver.findComponent(BY.key('translate')) 257 await translateBtn.click() 258 await driver.delayMs(1000) 259 // transform 260 hilog.info(DOMAIN, TAG, BUNDLE + 'TransformExampleFunction_001 transform') 261 await driver.assertComponentExist(BY.key('transform')) 262 let transformBtn = await driver.findComponent(BY.key('transform')) 263 await transformBtn.click() 264 await driver.delayMs(1000) 265 // setTransform 266 hilog.info(DOMAIN, TAG, BUNDLE + 'TransformExampleFunction_001 setTransform') 267 await driver.assertComponentExist(BY.key('setTransform')) 268 let setTransformBtn = await driver.findComponent(BY.key('setTransform')) 269 await setTransformBtn.click() 270 await driver.delayMs(1000) 271 // rotate 272 hilog.info(DOMAIN, TAG, BUNDLE + 'TransformExampleFunction_001 rotate') 273 await driver.assertComponentExist(BY.key('rotate')) 274 let rotateBtn = await driver.findComponent(BY.key('rotate')) 275 await rotateBtn.click() 276 await driver.delayMs(1000) 277 // back 278 hilog.info(DOMAIN, TAG, BUNDLE + 'TransformExampleFunction_001 back') 279 await driver.assertComponentExist(BY.key('back')) 280 let backBtn = await driver.findComponent(BY.key('back')) 281 await backBtn.click() 282 await driver.delayMs(1000) 283 hilog.info(DOMAIN, TAG, BUNDLE + 'TransformExampleFunction_001 end') 284 }) 285 286 /** 287 * ShadowOffsetExample 288 */ 289 it(BUNDLE + 'ShadowOffsetExampleFunction_001', 0, async function () { 290 // create UiDriver 291 hilog.info(DOMAIN, TAG, BUNDLE + 'ShadowOffsetExampleFunction_001 begin') 292 let driver = await UiDriver.create() 293 await driver.delayMs(1000) 294 // ShadowOffsetExample 295 hilog.info(DOMAIN, TAG, BUNDLE + 'ShadowOffsetExampleFunction_001 ShadowOffsetExample') 296 await driver.assertComponentExist(BY.key('item5')) 297 let shadowOffset = await driver.findComponent(BY.key('item5')) 298 await shadowOffset.click() 299 await driver.delayMs(1000) 300 // shadowOffsetY 301 hilog.info(DOMAIN, TAG, BUNDLE + 'ShadowOffsetExampleFunction_001 shadowOffsetY') 302 await driver.assertComponentExist(BY.key('shadowOffsetY')) 303 let shadowOffsetYBtn = await driver.findComponent(BY.key('shadowOffsetY')) 304 await shadowOffsetYBtn.click() 305 await driver.delayMs(1000) 306 // shadowOffsetX 307 hilog.info(DOMAIN, TAG, BUNDLE + 'ShadowOffsetExampleFunction_001 shadowOffsetX') 308 await driver.assertComponentExist(BY.key('shadowOffsetX')) 309 let shadowOffsetXBtn = await driver.findComponent(BY.key('shadowOffsetX')) 310 await shadowOffsetXBtn.click() 311 await driver.delayMs(1000) 312 // shadowBlur 313 hilog.info(DOMAIN, TAG, BUNDLE + 'ShadowOffsetExampleFunction_001 shadowBlur') 314 await driver.assertComponentExist(BY.key('shadowBlur')) 315 let shadowBlurBtn = await driver.findComponent(BY.key('shadowBlur')) 316 await shadowBlurBtn.click() 317 await driver.delayMs(1000) 318 // back 319 hilog.info(DOMAIN, TAG, BUNDLE + 'ShadowOffsetExampleFunction_001 back') 320 await driver.assertComponentExist(BY.key('back')) 321 let backBtn = await driver.findComponent(BY.key('back')) 322 await backBtn.click() 323 await driver.delayMs(1000) 324 hilog.info(DOMAIN, TAG, BUNDLE + 'ShadowOffsetExampleFunction_001 end') 325 }) 326 327 /** 328 * PathExample 329 */ 330 it(BUNDLE + 'PathExampleFunction_001', 0, async function () { 331 // create UiDriver 332 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 begin') 333 let driver = await UiDriver.create() 334 await driver.delayMs(1000) 335 // PathExample 336 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 PathExample') 337 await driver.assertComponentExist(BY.key('item6')) 338 let path2DBtn = await driver.findComponent(BY.key('item6')) 339 await path2DBtn.click() 340 await driver.delayMs(1000) 341 // arc 342 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 arc') 343 await driver.assertComponentExist(BY.key('arc')) 344 let arcBtn = await driver.findComponent(BY.key('arc')) 345 await arcBtn.click() 346 await driver.delayMs(1000) 347 // quadraticCurveTo 348 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 quadraticCurveTo') 349 await driver.assertComponentExist(BY.key('quadraticCurveTo')) 350 let quadraticCurveToBtn = await driver.findComponent(BY.key('quadraticCurveTo')) 351 await quadraticCurveToBtn.click() 352 await driver.delayMs(1000) 353 // bezierCurveTo 354 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 bezierCurveTo') 355 await driver.assertComponentExist(BY.key('bezierCurveTo')) 356 let bezierCurveToBtn = await driver.findComponent(BY.key('bezierCurveTo')) 357 await bezierCurveToBtn.click() 358 await driver.delayMs(1000) 359 // arcTo 360 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 arcTo') 361 await driver.assertComponentExist(BY.key('arcTo')) 362 let arcToBtn = await driver.findComponent(BY.key('arcTo')) 363 await arcToBtn.click() 364 await driver.delayMs(1000) 365 // ellipse 366 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 ellipse') 367 await driver.assertComponentExist(BY.key('ellipse')) 368 let ellipseBtn = await driver.findComponent(BY.key('ellipse')) 369 await ellipseBtn.click() 370 await driver.delayMs(1000) 371 // rect 372 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 rect') 373 await driver.assertComponentExist(BY.key('rect')) 374 let rectBtn = await driver.findComponent(BY.key('rect')) 375 await rectBtn.click() 376 await driver.delayMs(1000) 377 // closePath 378 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 closePath') 379 await driver.assertComponentExist(BY.key('closePath')) 380 let closePathBtn = await driver.findComponent(BY.key('closePath')) 381 await closePathBtn.click() 382 await driver.delayMs(1000) 383 // delete 384 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 delete') 385 await driver.assertComponentExist(BY.key('delete')) 386 let deleteBtn = await driver.findComponent(BY.key('delete')) 387 await deleteBtn.click() 388 await driver.delayMs(1000) 389 // addPath 390 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 addPath') 391 await driver.assertComponentExist(BY.key('addPath')) 392 let addPathBtn = await driver.findComponent(BY.key('addPath')) 393 await addPathBtn.click() 394 await driver.delayMs(1000) 395 // back 396 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 back') 397 await driver.assertComponentExist(BY.key('back')) 398 let backBtn = await driver.findComponent(BY.key('back')) 399 await backBtn.click() 400 await driver.delayMs(1000) 401 hilog.info(DOMAIN, TAG, BUNDLE + 'PathExampleFunction_001 end') 402 }) 403 404 /** 405 * BitmapExample 406 */ 407 it(BUNDLE + 'BitmapExampleFunction_001', 0, async function () { 408 // create UiDriver 409 hilog.info(DOMAIN, TAG, BUNDLE + 'BitmapExampleFunction_001 begin') 410 let driver = await UiDriver.create() 411 await driver.delayMs(1000) 412 // BitmapExample 413 hilog.info(DOMAIN, TAG, BUNDLE + 'BitmapExampleFunction_001 BitmapExample') 414 await driver.assertComponentExist(BY.key('item7')) 415 let imageBitmapBtn = await driver.findComponent(BY.key('item7')) 416 await imageBitmapBtn.click() 417 await driver.delayMs(1000) 418 // back 419 hilog.info(DOMAIN, TAG, BUNDLE + 'BitmapExampleFunction_001 back') 420 await driver.assertComponentExist(BY.key('back')) 421 let backBtn = await driver.findComponent(BY.key('back')) 422 await backBtn.click() 423 await driver.delayMs(1000) 424 hilog.info(DOMAIN, TAG, BUNDLE + 'BitmapExampleFunction_001 end') 425 }) 426 427 /** 428 * GradientExample 429 */ 430 it(BUNDLE + 'GradientExampleFunction_001', 0, async function () { 431 // create UiDriver 432 hilog.info(DOMAIN, TAG, BUNDLE + 'GradientExampleFunction_001 begin') 433 let driver = await UiDriver.create() 434 await driver.delayMs(1000) 435 // GradientExample 436 hilog.info(DOMAIN, TAG, BUNDLE + 'GradientExampleFunction_001 GradientExample') 437 await driver.assertComponentExist(BY.key('item8')) 438 let canvasGradientBtn = await driver.findComponent(BY.key('item8')) 439 await canvasGradientBtn.click() 440 await driver.delayMs(1000) 441 // createLinearGradient 442 hilog.info(DOMAIN, TAG, BUNDLE + 'GradientExampleFunction_001 createLinearGradient') 443 await driver.assertComponentExist(BY.key('createLinearGradient')) 444 let createLinearGradientBtn = await driver.findComponent(BY.key('createLinearGradient')) 445 await createLinearGradientBtn.click() 446 await driver.delayMs(1000) 447 // createRadialGradient 448 hilog.info(DOMAIN, TAG, BUNDLE + 'GradientExampleFunction_001 createRadialGradient') 449 await driver.assertComponentExist(BY.key('createRadialGradient')) 450 let createRadialGradientBtn = await driver.findComponent(BY.key('createRadialGradient')) 451 await createRadialGradientBtn.click() 452 await driver.delayMs(1000) 453 // back 454 hilog.info(DOMAIN, TAG, BUNDLE + 'GradientExampleFunction_001 back') 455 await driver.assertComponentExist(BY.key('back')) 456 let backBtn = await driver.findComponent(BY.key('back')) 457 await backBtn.click() 458 await driver.delayMs(1000) 459 hilog.info(DOMAIN, TAG, BUNDLE + 'GradientExampleFunction_001 end') 460 }) 461 }) 462}