diff --git a/ace/ace_standard/src/main/js/default/test/List.test.js b/ace/ace_standard/src/main/js/default/test/List.test.js index 499e4fa91a9194df2b3cc109df8fa0b4ae340e66..82a2330cfd24a8deb19e38eb8701418920f05273 100755 --- a/ace/ace_standard/src/main/js/default/test/List.test.js +++ b/ace/ace_standard/src/main/js/default/test/List.test.js @@ -14,3 +14,4 @@ */ require('./basicabilityapi.test.js') +require('./mediaquery.test.js') \ No newline at end of file diff --git a/ace/ace_standard/src/main/js/default/test/mediaquery.test.js b/ace/ace_standard/src/main/js/default/test/mediaquery.test.js new file mode 100644 index 0000000000000000000000000000000000000000..86e03f26ad23583e433dafc41b838f8f72aa28c0 --- /dev/null +++ b/ace/ace_standard/src/main/js/default/test/mediaquery.test.js @@ -0,0 +1,272 @@ +/* + * Copyright (C) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import {describe,beforeAll,beforeEach,afterEach,afterAll,it,expect}from 'deccjsunit/index' +import mediaquery from '@system.mediaquery'; + +describe('mediaquery', function() { + let testResult; + let test; + beforeAll(function() { + testResult = false; + test="success" + }); + + it('addListener', 0, function() { + console.info('MediaQuery addListener start'); + var mMediaQueryList = mediaquery.matchMedia('(min-height:0)'); +// mMediaQueryList.onreadystatechange = function(){ + function minWidthMatch(e){ + if(e.matches){ + //do something + expect(e.matches).assertEqual(true); + console.info('MediaQuery addListener success'); + expect(test).assertEqual('success'); + } + else{ + expect(e.matches).assertEqual(true); + console.info('MediaQuery addListener fail'); + expect(test).assertEqual('fail'); + } + } + + mMediaQueryList.addListener(minWidthMatch) + console.info('MediaQuery addListener end'); + // } + }); + + it('matchMedia', 0, function() { + console.info('matchMedia start'); + var mMediaQueryList = mediaquery.matchMedia('(min-height:0)'); + var med = mMediaQueryList.media + console.info("media:"+med) + mMediaQueryList.onchange = function(){ + console.info('MediaQuery detonate onchange') + } + function minWidthMatch(e){ + if(e.matches){ + console.info("MediaQuery matches:"+e.matches) + console.info("MediaQuery onchangeMessage:"+e.onchange) + console.info('MediaQuery matchMedia success'); + expect(test).assertEqual('success'); + } + else{ + console.info('MediaQuery matchMedia fail'); + expect(test).assertEqual('fail'); + } + console.info('MediaQuery matchMedia end'); + } + mMediaQueryList.addListener(minWidthMatch); + }); + + it('orientation', 0, function() { + console.info('orientation test start'); + var mMediaQueryList = mediaquery.matchMedia('(orientation:landscape)'); + var med = mMediaQueryList.media + console.info("orientation onchangeMessage:"+mMediaQueryList.onchange) + function orientationMatch(e){ + if(e.matches){ + //do something + console.info("MediaQuery orientation matches:"+e.matches) + console.info('MediaQuery orientation success'); + expect(test).assertEqual('success'); + } + else{ + console.info('MediaQuery orientation fail'); + expect(test).assertEqual('fail'); + } + } + mMediaQueryList.addListener(orientationMatch) + console.info('MediaQuery orientation test end') + }); + + it('rmeoveListener', 0, function() { + console.info('rmeoveListener start'); + var mMediaQueryList = mediaquery.matchMedia('(max-width:466)'); + function maxWidthMatch(e){ + if(e.matches){ + //do something + console.info('MediaQuery rmeoveListener success'); + expect(test).assertEqual('success'); + } + else{ + console.info('MediaQuery rmeoveListener fail'); + expect(test).assertEqual('fail'); + } + } + mMediaQueryList.addListener(maxWidthMatch) + mMediaQueryList.removeListener(maxWidthMatch) + console.info('MediaQuery removeListener end') + }); + + it('maxHeight', 0, function() { + console.info('maxHeight start'); + var mMediaQueryList = mediaquery.matchMedia('(max-width:10000)'); +// mMediaQueryList.onreadystatechange = function(){ + function maxHeightMatch(e){ + if(e.matches){ + //do something + console.info('MediaQuery maxHeight success'); + expect(test).assertEqual('success'); + } + else{ + console.info('MediaQuery maxHeight fail'); + expect(test).assertEqual('fail'); + } + } + // } + + mMediaQueryList.addListener(maxHeightMatch) + console.info('MediaQuery maxHeight end') + }); + + it('deviceType', 0, function() { + console.info('deviceType start'); + var mMediaQueryList = mediaquery.matchMedia('(deviceType:phone)'); + function deviceTypeMatch(e){ + if(e.matches){ + //do something + console.info('MediaQuery deviceType success'); + expect(test).assertEqual('success'); + } + else{ + console.info('MediaQuery deviceType fail'); + expect(test).assertEqual('fail'); + } + } + mMediaQueryList.addListener(deviceTypeMatch) + console.info('MediaQuery deviceType end') + }); + + it('logicOnly', 0, function() { + console.info('MediaQuery logicOnly start'); + var mMediaQueryList = mediaquery.matchMedia('only screen and(deviceType:phone)and(max-height:100000)'); +// mMediaQueryList.onreadystatechange = function(){ + function logicOnlyMatch(e){ + if(e.matches){ + //do something + console.info('MediaQuery logicOnly success'); + expect(test).assertEqual('success'); + } + else{ + console.info('MediaQuery logicOnly fail'); + expect(test).assertEqual('fail'); + } + } + mMediaQueryList.addListener(logicOnlyMatch) + console.info('MediaQuery logicOnly end') + //} + }); + + it('logicNot', 0, function() { + console.info('logicOnly start'); + var mMediaQueryList = mediaquery.matchMedia('not screen and(deviceType:tv)'); +// mMediaQueryList.onreadystatechange = function(){ + function logicNotMatch(e){ + if(e.matches){ + //do something + console.info('MediaQuery logicNot success'); + expect(test).assertEqual('success'); + } + else{ + console.info('MediaQuery logicNot fail'); + expect(test).assertEqual('fail'); + } + } + mMediaQueryList.addListener(logicNotMatch) + console.info('MediaQuery logicNot end') + //} + }); + + it('logicAnd', 0, function() { + console.info('MediaQuery logicAnd start'); + var mMediaQueryList = mediaquery.matchMedia('screen and(deviceType:phone)'); + function logicAndMatch(e){ + if(e.matches){ + //do something + expect(e.matches).assertEqual(true) + console.info('MediaQuery logicAnd success'); + expect(test).assertEqual('success'); + } + else{ + expect(e.matches).assertEqual(true) + console.info('MediaQuery logicAnd fail'); + expect(test).assertEqual('fail'); + } + } + mMediaQueryList.addListener(logicAndMatch) + console.info('MediaQuery logicAnd end') + }); + + it('logicComma', 0, function() { + console.info('MediaQuery logicComma start'); + var mMediaQueryList = mediaquery.matchMedia('screen and(min-height:0),(round-screen:true)'); + function logicCommaMatch(e){ + if(e.matches){ + //do something + expect(e.matches).assertEqual(true) + console.info('MediaQuery logicComma success'); + expect(test).assertEqual('success'); + } + else{ + expect(e.matches).assertEqual(true) + console.info('MediaQuery logicComma fail'); + expect(test).assertEqual('fail'); + } + } + mMediaQueryList.addListener(logicCommaMatch) + console.info('MediaQuery logicComma end') + }); + + it('logicOr', 0, function() { + console.info('MediaQuery logicOr start'); + var mMediaQueryList = mediaquery.matchMedia('screen and(max-device-height:2000)or(round-screen:true)'); + function logicOrMatch(e){ + if(e.matches){ + //do something + expect(e.matches).assertEqual(true) + console.info('MediaQuery logicOr success'); + expect(test).assertEqual('success'); + } + else{ + expect(e.matches).assertEqual(true) + console.info('MediaQuery logicOr fail'); + expect(test).assertEqual('fail'); + } + } + mMediaQueryList.addListener(logicOrMatch) + console.info('MediaQuery logicOr end') + }); + + it('logic1', 0, function() { + console.info('MediaQuery logic>= start'); + var mMediaQueryList = mediaquery.matchMedia('screen and(height>=0)'); + function logicOrMatch(e){ + if(e.matches){ + //do something + expect(e.matches).assertEqual(true) + console.info('MediaQuery logic>= success'); + expect(test).assertEqual('success'); + } + else{ + expect(e.matches).assertEqual(true) + console.info('MediaQuery logic>= fail'); + expect(test).assertEqual('fail'); + } + } + mMediaQueryList.addListener(logicOrMatch) + console.info('MediaQuery logic>= end') + }) +}); \ No newline at end of file