How to use extend method in Playwright Internal

Best JavaScript code snippet using playwright-internal

es5-visitors.js

Source:es5-visitors.js Github

copy

Full Screen

...390 else {391 // don't throw here, because there can be a valid js extend that has nothing to do with NS392 return;393 throw {394 message: "You need to call the extend with parameters. Example: '...extend(\"a.b.C\", {...overrides...})') in file: " + config.filePath,395 errCode: 1396 }397 }398 className = arg0.value ? arg0.value : "";399 // Get all methods from the implementation object400 var methodsAndInterfaces = _getOverridenMethodsAndImplementedInterfaces(arg1, config);401 var overriddenMethodNames = methodsAndInterfaces[0];402 var implementedInterfaces = methodsAndInterfaces[1];403 var isCorrectExtendClassName = _testJavaProxyName(className);404 var isCorrectClassName = _testClassName(className);405 if (className && !isCorrectClassName && !isCorrectExtendClassName) {406 throw {407 message: "The 'extend' you are trying to make has an invalid name. Example: '...extend(\"a.b.C\", {...overrides...})'), file: " + config.filePath,408 errCode: 1409 }410 }411 var lineToWrite = "";412 if (isCorrectExtendClassName) {413 if (config.logger) {414 config.logger.info(lineToWrite)415 }416 var classNameFromDecorator = isCorrectExtendClassName ? className : "";417 lineToWrite = _generateLineToWrite(classNameFromDecorator, extendClass.reverse().join("."), overriddenMethodNames, "", config.fullPathName, implementedInterfaces);418 addCustomExtend(classNameFromDecorator, config.fullPathName, lineToWrite);419 return;420 }421 if (config.logger) {422 config.logger.info(lineToWrite)423 }424 var extendInfo = {425 file: config.filePath,426 line: path.node.property.loc.start.line,427 column: path.node.property.loc.start.column + columnOffset,428 className: className429 };430 lineToWrite = _generateLineToWrite(isCorrectExtendClassName ? className : "", extendClass.reverse().join("."), overriddenMethodNames, extendInfo, "", implementedInterfaces);431 normalExtendsArr.push(lineToWrite)432 }433 else {434 // don't throw here, because there can be a valid js extend that has nothing to do with NS435 return;436 throw {437 message: "You need to call the extend '...extend(\"extend_name\", {...overrides...})'), file: " + config.filePath,438 errCode: 1439 }440 }441 }442 /* 443 * HELPER METHODS444 */445 function _getOverriddenMethods(node, config) {446 var overriddenMethodNames = [];447 if (types.isObjectExpression(node)) {448 var objectProperties = node.properties;449 for (var index in objectProperties) {450 overriddenMethodNames.push(objectProperties[index].key.name);451 }...

Full Screen

Full Screen

proto_test.js

Source:proto_test.js Github

copy

Full Screen

1// Protocol Buffers - Google's data interchange format2// Copyright 2008 Google Inc. All rights reserved.3// https://developers.google.com/protocol-buffers/4//5// Redistribution and use in source and binary forms, with or without6// modification, are permitted provided that the following conditions are7// met:8//9// * Redistributions of source code must retain the above copyright10// notice, this list of conditions and the following disclaimer.11// * Redistributions in binary form must reproduce the above12// copyright notice, this list of conditions and the following disclaimer13// in the documentation and/or other materials provided with the14// distribution.15// * Neither the name of Google Inc. nor the names of its16// contributors may be used to endorse or promote products derived from17// this software without specific prior written permission.18//19// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS20// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT21// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR22// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT23// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,24// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT25// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,26// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY27// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT28// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE29// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.30// Test suite is written using Jasmine -- see http://jasmine.github.io/31goog.require('goog.crypt.base64');32goog.require('goog.testing.asserts');33goog.require('jspb.Message');34// CommonJS-LoadFromFile: ../testbinary_pb proto.jspb.test35goog.require('proto.jspb.test.ExtendsWithMessage');36goog.require('proto.jspb.test.ForeignEnum');37goog.require('proto.jspb.test.ForeignMessage');38goog.require('proto.jspb.test.TestAllTypes');39goog.require('proto.jspb.test.TestExtendable');40goog.require('proto.jspb.test.extendOptionalBool');41goog.require('proto.jspb.test.extendOptionalBytes');42goog.require('proto.jspb.test.extendOptionalDouble');43goog.require('proto.jspb.test.extendOptionalFixed32');44goog.require('proto.jspb.test.extendOptionalFixed64');45goog.require('proto.jspb.test.extendOptionalFloat');46goog.require('proto.jspb.test.extendOptionalForeignEnum');47goog.require('proto.jspb.test.extendOptionalInt32');48goog.require('proto.jspb.test.extendOptionalInt64');49goog.require('proto.jspb.test.extendOptionalSfixed32');50goog.require('proto.jspb.test.extendOptionalSfixed64');51goog.require('proto.jspb.test.extendOptionalSint32');52goog.require('proto.jspb.test.extendOptionalSint64');53goog.require('proto.jspb.test.extendOptionalString');54goog.require('proto.jspb.test.extendOptionalUint32');55goog.require('proto.jspb.test.extendOptionalUint64');56goog.require('proto.jspb.test.extendPackedRepeatedBoolList');57goog.require('proto.jspb.test.extendPackedRepeatedDoubleList');58goog.require('proto.jspb.test.extendPackedRepeatedFixed32List');59goog.require('proto.jspb.test.extendPackedRepeatedFixed64List');60goog.require('proto.jspb.test.extendPackedRepeatedFloatList');61goog.require('proto.jspb.test.extendPackedRepeatedForeignEnumList');62goog.require('proto.jspb.test.extendPackedRepeatedInt32List');63goog.require('proto.jspb.test.extendPackedRepeatedInt64List');64goog.require('proto.jspb.test.extendPackedRepeatedSfixed32List');65goog.require('proto.jspb.test.extendPackedRepeatedSfixed64List');66goog.require('proto.jspb.test.extendPackedRepeatedSint32List');67goog.require('proto.jspb.test.extendPackedRepeatedSint64List');68goog.require('proto.jspb.test.extendPackedRepeatedUint32List');69goog.require('proto.jspb.test.extendPackedRepeatedUint64List');70goog.require('proto.jspb.test.extendRepeatedBoolList');71goog.require('proto.jspb.test.extendRepeatedBytesList');72goog.require('proto.jspb.test.extendRepeatedDoubleList');73goog.require('proto.jspb.test.extendRepeatedFixed32List');74goog.require('proto.jspb.test.extendRepeatedFixed64List');75goog.require('proto.jspb.test.extendRepeatedFloatList');76goog.require('proto.jspb.test.extendRepeatedForeignEnumList');77goog.require('proto.jspb.test.extendRepeatedInt32List');78goog.require('proto.jspb.test.extendRepeatedInt64List');79goog.require('proto.jspb.test.extendRepeatedSfixed32List');80goog.require('proto.jspb.test.extendRepeatedSfixed64List');81goog.require('proto.jspb.test.extendRepeatedSint32List');82goog.require('proto.jspb.test.extendRepeatedSint64List');83goog.require('proto.jspb.test.extendRepeatedStringList');84goog.require('proto.jspb.test.extendRepeatedUint32List');85goog.require('proto.jspb.test.extendRepeatedUint64List');86var suite = {};87var BYTES = new Uint8Array([1, 2, 8, 9]);88var BYTES_B64 = goog.crypt.base64.encodeByteArray(BYTES);89/**90 * Helper: fill all fields on a TestAllTypes message.91 * @param {proto.jspb.test.TestAllTypes} msg92 */93function fillAllFields(msg) {94 msg.setOptionalInt32(-42);95 // can be exactly represented by JS number (64-bit double, i.e., 52-bit96 // mantissa).97 msg.setOptionalInt64(-0x7fffffff00000000);98 msg.setOptionalUint32(0x80000000);99 msg.setOptionalUint64(0xf000000000000000);100 msg.setOptionalSint32(-100);101 msg.setOptionalSint64(-0x8000000000000000);102 msg.setOptionalFixed32(1234);103 msg.setOptionalFixed64(0x1234567800000000);104 msg.setOptionalSfixed32(-1234);105 msg.setOptionalSfixed64(-0x1234567800000000);106 msg.setOptionalFloat(1.5);107 msg.setOptionalDouble(-1.5);108 msg.setOptionalBool(true);109 msg.setOptionalString('hello world');110 msg.setOptionalBytes(BYTES);111 msg.setOptionalGroup(new proto.jspb.test.TestAllTypes.OptionalGroup());112 msg.getOptionalGroup().setA(100);113 var submsg = new proto.jspb.test.ForeignMessage();114 submsg.setC(16);115 msg.setOptionalForeignMessage(submsg);116 msg.setOptionalForeignEnum(proto.jspb.test.ForeignEnum.FOREIGN_FOO);117 msg.setOneofString('oneof');118 msg.setRepeatedInt32List([-42]);119 msg.setRepeatedInt64List([-0x7fffffff00000000]);120 msg.setRepeatedUint32List([0x80000000]);121 msg.setRepeatedUint64List([0xf000000000000000]);122 msg.setRepeatedSint32List([-100]);123 msg.setRepeatedSint64List([-0x8000000000000000]);124 msg.setRepeatedFixed32List([1234]);125 msg.setRepeatedFixed64List([0x1234567800000000]);126 msg.setRepeatedSfixed32List([-1234]);127 msg.setRepeatedSfixed64List([-0x1234567800000000]);128 msg.setRepeatedFloatList([1.5]);129 msg.setRepeatedDoubleList([-1.5]);130 msg.setRepeatedBoolList([true]);131 msg.setRepeatedStringList(['hello world']);132 msg.setRepeatedBytesList([BYTES, BYTES]);133 msg.setRepeatedGroupList([new proto.jspb.test.TestAllTypes.RepeatedGroup()]);134 msg.getRepeatedGroupList()[0].setA(100);135 submsg = new proto.jspb.test.ForeignMessage();136 submsg.setC(1000);137 msg.setRepeatedForeignMessageList([submsg]);138 msg.setRepeatedForeignEnumList([proto.jspb.test.ForeignEnum.FOREIGN_FOO]);139 msg.setPackedRepeatedInt32List([-42]);140 msg.setPackedRepeatedInt64List([-0x7fffffff00000000]);141 msg.setPackedRepeatedUint32List([0x80000000]);142 msg.setPackedRepeatedUint64List([0xf000000000000000]);143 msg.setPackedRepeatedSint32List([-100]);144 msg.setPackedRepeatedSint64List([-0x8000000000000000]);145 msg.setPackedRepeatedFixed32List([1234]);146 msg.setPackedRepeatedFixed64List([0x1234567800000000]);147 msg.setPackedRepeatedSfixed32List([-1234]);148 msg.setPackedRepeatedSfixed64List([-0x1234567800000000]);149 msg.setPackedRepeatedFloatList([1.5]);150 msg.setPackedRepeatedDoubleList([-1.5]);151 msg.setPackedRepeatedBoolList([true]);152}153/**154 * Helper: compare a bytes field to an expected value155 * @param {Uint8Array|string} arr156 * @param {Uint8Array} expected157 * @return {boolean}158 */159function bytesCompare(arr, expected) {160 if (goog.isString(arr)) {161 arr = goog.crypt.base64.decodeStringToUint8Array(arr);162 }163 if (arr.length != expected.length) {164 return false;165 }166 for (var i = 0; i < arr.length; i++) {167 if (arr[i] != expected[i]) {168 return false;169 }170 }171 return true;172}173/**174 * Helper: verify contents of given TestAllTypes message as set by175 * fillAllFields().176 * @param {proto.jspb.test.TestAllTypes} original177 * @param {proto.jspb.test.TestAllTypes} copy178 */179function checkAllFields(original, copy) {180 assertTrue(jspb.Message.equals(original, copy));181 assertEquals(copy.getOptionalInt32(), -42);182 assertEquals(copy.getOptionalInt64(), -0x7fffffff00000000);183 assertEquals(copy.getOptionalUint32(), 0x80000000);184 assertEquals(copy.getOptionalUint64(), 0xf000000000000000);185 assertEquals(copy.getOptionalSint32(), -100);186 assertEquals(copy.getOptionalSint64(), -0x8000000000000000);187 assertEquals(copy.getOptionalFixed32(), 1234);188 assertEquals(copy.getOptionalFixed64(), 0x1234567800000000);189 assertEquals(copy.getOptionalSfixed32(), -1234);190 assertEquals(copy.getOptionalSfixed64(), -0x1234567800000000);191 assertEquals(copy.getOptionalFloat(), 1.5);192 assertEquals(copy.getOptionalDouble(), -1.5);193 assertEquals(copy.getOptionalBool(), true);194 assertEquals(copy.getOptionalString(), 'hello world');195 assertEquals(true, bytesCompare(copy.getOptionalBytes(), BYTES));196 assertEquals(true, bytesCompare(copy.getOptionalBytes_asU8(), BYTES));197 assertEquals(198 copy.getOptionalBytes_asB64(), goog.crypt.base64.encodeByteArray(BYTES));199 assertEquals(copy.getOptionalGroup().getA(), 100);200 assertEquals(copy.getOptionalForeignMessage().getC(), 16);201 assertEquals(copy.getOptionalForeignEnum(),202 proto.jspb.test.ForeignEnum.FOREIGN_FOO);203 assertEquals(copy.getOneofString(), 'oneof');204 assertEquals(copy.getOneofFieldCase(),205 proto.jspb.test.TestAllTypes.OneofFieldCase.ONEOF_STRING);206 assertElementsEquals(copy.getRepeatedInt32List(), [-42]);207 assertElementsEquals(copy.getRepeatedInt64List(), [-0x7fffffff00000000]);208 assertElementsEquals(copy.getRepeatedUint32List(), [0x80000000]);209 assertElementsEquals(copy.getRepeatedUint64List(), [0xf000000000000000]);210 assertElementsEquals(copy.getRepeatedSint32List(), [-100]);211 assertElementsEquals(copy.getRepeatedSint64List(), [-0x8000000000000000]);212 assertElementsEquals(copy.getRepeatedFixed32List(), [1234]);213 assertElementsEquals(copy.getRepeatedFixed64List(), [0x1234567800000000]);214 assertElementsEquals(copy.getRepeatedSfixed32List(), [-1234]);215 assertElementsEquals(copy.getRepeatedSfixed64List(), [-0x1234567800000000]);216 assertElementsEquals(copy.getRepeatedFloatList(), [1.5]);217 assertElementsEquals(copy.getRepeatedDoubleList(), [-1.5]);218 assertElementsEquals(copy.getRepeatedBoolList(), [true]);219 assertElementsEquals(copy.getRepeatedStringList(), ['hello world']);220 assertEquals(copy.getRepeatedBytesList().length, 2);221 assertEquals(true, bytesCompare(copy.getRepeatedBytesList_asU8()[0], BYTES));222 assertEquals(true, bytesCompare(copy.getRepeatedBytesList()[0], BYTES));223 assertEquals(true, bytesCompare(copy.getRepeatedBytesList_asU8()[1], BYTES));224 assertEquals(copy.getRepeatedBytesList_asB64()[0], BYTES_B64);225 assertEquals(copy.getRepeatedBytesList_asB64()[1], BYTES_B64);226 assertEquals(copy.getRepeatedGroupList().length, 1);227 assertEquals(copy.getRepeatedGroupList()[0].getA(), 100);228 assertEquals(copy.getRepeatedForeignMessageList().length, 1);229 assertEquals(copy.getRepeatedForeignMessageList()[0].getC(), 1000);230 assertElementsEquals(copy.getRepeatedForeignEnumList(),231 [proto.jspb.test.ForeignEnum.FOREIGN_FOO]);232 assertElementsEquals(copy.getPackedRepeatedInt32List(), [-42]);233 assertElementsEquals(copy.getPackedRepeatedInt64List(),234 [-0x7fffffff00000000]);235 assertElementsEquals(copy.getPackedRepeatedUint32List(), [0x80000000]);236 assertElementsEquals(copy.getPackedRepeatedUint64List(),237 [0xf000000000000000]);238 assertElementsEquals(copy.getPackedRepeatedSint32List(), [-100]);239 assertElementsEquals(copy.getPackedRepeatedSint64List(),240 [-0x8000000000000000]);241 assertElementsEquals(copy.getPackedRepeatedFixed32List(), [1234]);242 assertElementsEquals(copy.getPackedRepeatedFixed64List(),243 [0x1234567800000000]);244 assertElementsEquals(copy.getPackedRepeatedSfixed32List(), [-1234]);245 assertElementsEquals(copy.getPackedRepeatedSfixed64List(),246 [-0x1234567800000000]);247 assertElementsEquals(copy.getPackedRepeatedFloatList(), [1.5]);248 assertElementsEquals(copy.getPackedRepeatedDoubleList(), [-1.5]);249}250/**251 * Helper: verify that all expected extensions are present.252 * @param {!proto.jspb.test.TestExtendable} msg253 */254function checkExtensions(msg) {255 assertEquals(-42,256 msg.getExtension(proto.jspb.test.extendOptionalInt32));257 assertEquals(-0x7fffffff00000000,258 msg.getExtension(proto.jspb.test.extendOptionalInt64));259 assertEquals(0x80000000,260 msg.getExtension(proto.jspb.test.extendOptionalUint32));261 assertEquals(0xf000000000000000,262 msg.getExtension(proto.jspb.test.extendOptionalUint64));263 assertEquals(-100,264 msg.getExtension(proto.jspb.test.extendOptionalSint32));265 assertEquals(-0x8000000000000000,266 msg.getExtension(proto.jspb.test.extendOptionalSint64));267 assertEquals(1234,268 msg.getExtension(proto.jspb.test.extendOptionalFixed32));269 assertEquals(0x1234567800000000,270 msg.getExtension(proto.jspb.test.extendOptionalFixed64));271 assertEquals(-1234,272 msg.getExtension(proto.jspb.test.extendOptionalSfixed32));273 assertEquals(-0x1234567800000000,274 msg.getExtension(proto.jspb.test.extendOptionalSfixed64));275 assertEquals(1.5,276 msg.getExtension(proto.jspb.test.extendOptionalFloat));277 assertEquals(-1.5,278 msg.getExtension(proto.jspb.test.extendOptionalDouble));279 assertEquals(true,280 msg.getExtension(proto.jspb.test.extendOptionalBool));281 assertEquals('hello world',282 msg.getExtension(proto.jspb.test.extendOptionalString));283 assertEquals(284 true, bytesCompare(285 msg.getExtension(proto.jspb.test.extendOptionalBytes), BYTES));286 assertEquals(16,287 msg.getExtension(288 proto.jspb.test.ExtendsWithMessage.optionalExtension).getFoo());289 assertElementsEquals(290 msg.getExtension(proto.jspb.test.extendRepeatedInt32List),291 [-42]);292 assertElementsEquals(293 msg.getExtension(proto.jspb.test.extendRepeatedInt64List),294 [-0x7fffffff00000000]);295 assertElementsEquals(296 msg.getExtension(proto.jspb.test.extendRepeatedUint32List),297 [0x80000000]);298 assertElementsEquals(299 msg.getExtension(proto.jspb.test.extendRepeatedUint64List),300 [0xf000000000000000]);301 assertElementsEquals(302 msg.getExtension(proto.jspb.test.extendRepeatedSint32List),303 [-100]);304 assertElementsEquals(305 msg.getExtension(proto.jspb.test.extendRepeatedSint64List),306 [-0x8000000000000000]);307 assertElementsEquals(308 msg.getExtension(proto.jspb.test.extendRepeatedFixed32List),309 [1234]);310 assertElementsEquals(311 msg.getExtension(proto.jspb.test.extendRepeatedFixed64List),312 [0x1234567800000000]);313 assertElementsEquals(314 msg.getExtension(proto.jspb.test.extendRepeatedSfixed32List),315 [-1234]);316 assertElementsEquals(317 msg.getExtension(proto.jspb.test.extendRepeatedSfixed64List),318 [-0x1234567800000000]);319 assertElementsEquals(320 msg.getExtension(proto.jspb.test.extendRepeatedFloatList),321 [1.5]);322 assertElementsEquals(323 msg.getExtension(proto.jspb.test.extendRepeatedDoubleList),324 [-1.5]);325 assertElementsEquals(326 msg.getExtension(proto.jspb.test.extendRepeatedBoolList),327 [true]);328 assertElementsEquals(329 msg.getExtension(proto.jspb.test.extendRepeatedStringList),330 ['hello world']);331 assertEquals(332 true,333 bytesCompare(334 msg.getExtension(proto.jspb.test.extendRepeatedBytesList)[0], BYTES));335 assertEquals(1000,336 msg.getExtension(337 proto.jspb.test.ExtendsWithMessage.repeatedExtensionList)[0]338 .getFoo());339 assertElementsEquals(340 msg.getExtension(proto.jspb.test.extendRepeatedForeignEnumList),341 [proto.jspb.test.ForeignEnum.FOREIGN_FOO]);342 assertElementsEquals(343 msg.getExtension(proto.jspb.test.extendPackedRepeatedInt32List),344 [-42]);345 assertElementsEquals(346 msg.getExtension(proto.jspb.test.extendPackedRepeatedInt64List),347 [-0x7fffffff00000000]);348 assertElementsEquals(349 msg.getExtension(proto.jspb.test.extendPackedRepeatedUint32List),350 [0x80000000]);351 assertElementsEquals(352 msg.getExtension(proto.jspb.test.extendPackedRepeatedUint64List),353 [0xf000000000000000]);354 assertElementsEquals(355 msg.getExtension(proto.jspb.test.extendPackedRepeatedSint32List),356 [-100]);357 assertElementsEquals(358 msg.getExtension(proto.jspb.test.extendPackedRepeatedSint64List),359 [-0x8000000000000000]);360 assertElementsEquals(361 msg.getExtension(proto.jspb.test.extendPackedRepeatedFixed32List),362 [1234]);363 assertElementsEquals(364 msg.getExtension(proto.jspb.test.extendPackedRepeatedFixed64List),365 [0x1234567800000000]);366 assertElementsEquals(367 msg.getExtension(proto.jspb.test.extendPackedRepeatedSfixed32List),368 [-1234]);369 assertElementsEquals(370 msg.getExtension(proto.jspb.test.extendPackedRepeatedSfixed64List),371 [-0x1234567800000000]);372 assertElementsEquals(373 msg.getExtension(proto.jspb.test.extendPackedRepeatedFloatList),374 [1.5]);375 assertElementsEquals(376 msg.getExtension(proto.jspb.test.extendPackedRepeatedDoubleList),377 [-1.5]);378 assertElementsEquals(379 msg.getExtension(proto.jspb.test.extendPackedRepeatedBoolList),380 [true]);381 assertElementsEquals(382 msg.getExtension(proto.jspb.test.extendPackedRepeatedForeignEnumList),383 [proto.jspb.test.ForeignEnum.FOREIGN_FOO]);384}385describe('protoBinaryTest', function() {386 /**387 * Tests a basic serialization-deserializaton round-trip with all supported388 * field types (on the TestAllTypes message type).389 */390 it('testRoundTrip', function() {391 var msg = new proto.jspb.test.TestAllTypes();392 fillAllFields(msg);393 var encoded = msg.serializeBinary();394 var decoded = proto.jspb.test.TestAllTypes.deserializeBinary(encoded);395 checkAllFields(msg, decoded);396 });397 /**398 * Test that base64 string and Uint8Array are interchangeable in bytes fields.399 */400 it('testBytesFieldsGettersInterop', function() {401 var msg = new proto.jspb.test.TestAllTypes();402 // Set from a base64 string and check all the getters work.403 msg.setOptionalBytes(BYTES_B64);404 assertTrue(bytesCompare(msg.getOptionalBytes_asU8(), BYTES));405 assertTrue(bytesCompare(msg.getOptionalBytes_asB64(), BYTES));406 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));407 // Test binary serialize round trip doesn't break it.408 msg = proto.jspb.test.TestAllTypes.deserializeBinary(msg.serializeBinary());409 assertTrue(bytesCompare(msg.getOptionalBytes_asU8(), BYTES));410 assertTrue(bytesCompare(msg.getOptionalBytes_asB64(), BYTES));411 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));412 msg = new proto.jspb.test.TestAllTypes();413 // Set from a Uint8Array and check all the getters work.414 msg.setOptionalBytes(BYTES);415 assertTrue(bytesCompare(msg.getOptionalBytes_asU8(), BYTES));416 assertTrue(bytesCompare(msg.getOptionalBytes_asB64(), BYTES));417 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));418 });419 /**420 * Test that bytes setters will receive result of any of the getters.421 */422 it('testBytesFieldsSettersInterop', function() {423 var msg = new proto.jspb.test.TestAllTypes();424 msg.setOptionalBytes(BYTES);425 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));426 msg.setOptionalBytes(msg.getOptionalBytes());427 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));428 msg.setOptionalBytes(msg.getOptionalBytes_asB64());429 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));430 msg.setOptionalBytes(msg.getOptionalBytes_asU8());431 assertTrue(bytesCompare(msg.getOptionalBytes(), BYTES));432 });433 /**434 * Test that bytes setters will receive result of any of the getters.435 */436 it('testRepeatedBytesGetters', function() {437 var msg = new proto.jspb.test.TestAllTypes();438 function assertGetters() {439 assertTrue(goog.isString(msg.getRepeatedBytesList_asB64()[0]));440 assertTrue(goog.isString(msg.getRepeatedBytesList_asB64()[1]));441 assertTrue(msg.getRepeatedBytesList_asU8()[0] instanceof Uint8Array);442 assertTrue(msg.getRepeatedBytesList_asU8()[1] instanceof Uint8Array);443 assertTrue(bytesCompare(msg.getRepeatedBytesList()[0], BYTES));444 assertTrue(bytesCompare(msg.getRepeatedBytesList()[1], BYTES));445 assertTrue(bytesCompare(msg.getRepeatedBytesList_asB64()[0], BYTES));446 assertTrue(bytesCompare(msg.getRepeatedBytesList_asB64()[1], BYTES));447 assertTrue(bytesCompare(msg.getRepeatedBytesList_asU8()[0], BYTES));448 assertTrue(bytesCompare(msg.getRepeatedBytesList_asU8()[1], BYTES));449 }450 msg.setRepeatedBytesList([BYTES, BYTES]);451 assertGetters();452 msg.setRepeatedBytesList([BYTES_B64, BYTES_B64]);453 assertGetters();454 msg.setRepeatedBytesList([]);455 assertEquals(0, msg.getRepeatedBytesList().length);456 assertEquals(0, msg.getRepeatedBytesList_asB64().length);457 assertEquals(0, msg.getRepeatedBytesList_asU8().length);458 });459 /**460 * Helper: fill all extension values.461 * @param {proto.jspb.test.TestExtendable} msg462 */463 function fillExtensions(msg) {464 msg.setExtension(465 proto.jspb.test.extendOptionalInt32, -42);466 msg.setExtension(467 proto.jspb.test.extendOptionalInt64, -0x7fffffff00000000);468 msg.setExtension(469 proto.jspb.test.extendOptionalUint32, 0x80000000);470 msg.setExtension(471 proto.jspb.test.extendOptionalUint64, 0xf000000000000000);472 msg.setExtension(473 proto.jspb.test.extendOptionalSint32, -100);474 msg.setExtension(475 proto.jspb.test.extendOptionalSint64, -0x8000000000000000);476 msg.setExtension(477 proto.jspb.test.extendOptionalFixed32, 1234);478 msg.setExtension(479 proto.jspb.test.extendOptionalFixed64, 0x1234567800000000);480 msg.setExtension(481 proto.jspb.test.extendOptionalSfixed32, -1234);482 msg.setExtension(483 proto.jspb.test.extendOptionalSfixed64, -0x1234567800000000);484 msg.setExtension(485 proto.jspb.test.extendOptionalFloat, 1.5);486 msg.setExtension(487 proto.jspb.test.extendOptionalDouble, -1.5);488 msg.setExtension(489 proto.jspb.test.extendOptionalBool, true);490 msg.setExtension(491 proto.jspb.test.extendOptionalString, 'hello world');492 msg.setExtension(proto.jspb.test.extendOptionalBytes, BYTES);493 var submsg = new proto.jspb.test.ExtendsWithMessage();494 submsg.setFoo(16);495 msg.setExtension(496 proto.jspb.test.ExtendsWithMessage.optionalExtension, submsg);497 msg.setExtension(498 proto.jspb.test.extendOptionalForeignEnum,499 proto.jspb.test.ForeignEnum.FOREIGN_FOO);500 msg.setExtension(501 proto.jspb.test.extendRepeatedInt32List, [-42]);502 msg.setExtension(503 proto.jspb.test.extendRepeatedInt64List, [-0x7fffffff00000000]);504 msg.setExtension(505 proto.jspb.test.extendRepeatedUint32List, [0x80000000]);506 msg.setExtension(507 proto.jspb.test.extendRepeatedUint64List, [0xf000000000000000]);508 msg.setExtension(509 proto.jspb.test.extendRepeatedSint32List, [-100]);510 msg.setExtension(511 proto.jspb.test.extendRepeatedSint64List, [-0x8000000000000000]);512 msg.setExtension(513 proto.jspb.test.extendRepeatedFixed32List, [1234]);514 msg.setExtension(515 proto.jspb.test.extendRepeatedFixed64List, [0x1234567800000000]);516 msg.setExtension(517 proto.jspb.test.extendRepeatedSfixed32List, [-1234]);518 msg.setExtension(519 proto.jspb.test.extendRepeatedSfixed64List, [-0x1234567800000000]);520 msg.setExtension(521 proto.jspb.test.extendRepeatedFloatList, [1.5]);522 msg.setExtension(523 proto.jspb.test.extendRepeatedDoubleList, [-1.5]);524 msg.setExtension(525 proto.jspb.test.extendRepeatedBoolList, [true]);526 msg.setExtension(527 proto.jspb.test.extendRepeatedStringList, ['hello world']);528 msg.setExtension(proto.jspb.test.extendRepeatedBytesList, [BYTES]);529 submsg = new proto.jspb.test.ExtendsWithMessage();530 submsg.setFoo(1000);531 msg.setExtension(532 proto.jspb.test.ExtendsWithMessage.repeatedExtensionList, [submsg]);533 msg.setExtension(proto.jspb.test.extendRepeatedForeignEnumList,534 [proto.jspb.test.ForeignEnum.FOREIGN_FOO]);535 msg.setExtension(536 proto.jspb.test.extendPackedRepeatedInt32List, [-42]);537 msg.setExtension(538 proto.jspb.test.extendPackedRepeatedInt64List, [-0x7fffffff00000000]);539 msg.setExtension(540 proto.jspb.test.extendPackedRepeatedUint32List, [0x80000000]);541 msg.setExtension(542 proto.jspb.test.extendPackedRepeatedUint64List, [0xf000000000000000]);543 msg.setExtension(544 proto.jspb.test.extendPackedRepeatedSint32List, [-100]);545 msg.setExtension(546 proto.jspb.test.extendPackedRepeatedSint64List, [-0x8000000000000000]);547 msg.setExtension(548 proto.jspb.test.extendPackedRepeatedFixed32List, [1234]);549 msg.setExtension(550 proto.jspb.test.extendPackedRepeatedFixed64List, [0x1234567800000000]);551 msg.setExtension(552 proto.jspb.test.extendPackedRepeatedSfixed32List, [-1234]);553 msg.setExtension(554 proto.jspb.test.extendPackedRepeatedSfixed64List,555 [-0x1234567800000000]);556 msg.setExtension(557 proto.jspb.test.extendPackedRepeatedFloatList, [1.5]);558 msg.setExtension(559 proto.jspb.test.extendPackedRepeatedDoubleList, [-1.5]);560 msg.setExtension(561 proto.jspb.test.extendPackedRepeatedBoolList, [true]);562 msg.setExtension(proto.jspb.test.extendPackedRepeatedForeignEnumList,563 [proto.jspb.test.ForeignEnum.FOREIGN_FOO]);564 }565 /**566 * Tests extension serialization and deserialization.567 */568 it('testExtensions', function() {569 var msg = new proto.jspb.test.TestExtendable();570 fillExtensions(msg);571 var encoded = msg.serializeBinary();572 var decoded = proto.jspb.test.TestExtendable.deserializeBinary(encoded);573 checkExtensions(decoded);574 });...

Full Screen

Full Screen

extend-visitor.js

Source:extend-visitor.js Github

copy

Full Screen

...21 if (rulesetNode.root) {22 return;23 }24 var i, j, extend, allSelectorsExtendList = [], extendList;25 // get &:extend(.a); rules which apply to all selectors in this ruleset26 var rules = rulesetNode.rules, ruleCnt = rules ? rules.length : 0;27 for(i = 0; i < ruleCnt; i++) {28 if (rulesetNode.rules[i] instanceof tree.Extend) {29 allSelectorsExtendList.push(rules[i]);30 rulesetNode.extendOnEveryPath = true;31 }32 }33 // now find every selector and apply the extends that apply to all extends34 // and the ones which apply to an individual extend35 var paths = rulesetNode.paths;36 for(i = 0; i < paths.length; i++) {37 var selectorPath = paths[i],38 selector = selectorPath[selectorPath.length - 1],39 selExtendList = selector.extendList;40 extendList = selExtendList ? selExtendList.slice(0).concat(allSelectorsExtendList)41 : allSelectorsExtendList;42 if (extendList) {43 extendList = extendList.map(function(allSelectorsExtend) {44 return allSelectorsExtend.clone();45 });46 }47 for(j = 0; j < extendList.length; j++) {48 this.foundExtends = true;49 extend = extendList[j];50 extend.findSelfSelectors(selectorPath);51 extend.ruleset = rulesetNode;52 if (j === 0) { extend.firstExtendOnThisSelectorPath = true; }53 this.allExtendsStack[this.allExtendsStack.length-1].push(extend);54 }55 }56 this.contexts.push(rulesetNode.selectors);57 },58 visitRulesetOut: function (rulesetNode) {59 if (!rulesetNode.root) {60 this.contexts.length = this.contexts.length - 1;61 }62 },63 visitMedia: function (mediaNode, visitArgs) {64 mediaNode.allExtends = [];65 this.allExtendsStack.push(mediaNode.allExtends);66 },67 visitMediaOut: function (mediaNode) {68 this.allExtendsStack.length = this.allExtendsStack.length - 1;69 },70 visitDirective: function (directiveNode, visitArgs) {71 directiveNode.allExtends = [];72 this.allExtendsStack.push(directiveNode.allExtends);73 },74 visitDirectiveOut: function (directiveNode) {75 this.allExtendsStack.length = this.allExtendsStack.length - 1;76 }77 };78 tree.processExtendsVisitor = function() {79 this._visitor = new tree.visitor(this);80 };81 tree.processExtendsVisitor.prototype = {82 run: function(root) {83 var extendFinder = new tree.extendFinderVisitor();84 extendFinder.run(root);85 if (!extendFinder.foundExtends) { return root; }86 root.allExtends = root.allExtends.concat(this.doExtendChaining(root.allExtends, root.allExtends));87 this.allExtendsStack = [root.allExtends];88 return this._visitor.visit(root);89 },90 doExtendChaining: function (extendsList, extendsListTarget, iterationCount) {91 //92 // chaining is different from normal extension.. if we extend an extend then we are not just copying, altering and pasting93 // the selector we would do normally, but we are also adding an extend with the same target selector94 // this means this new extend can then go and alter other extends95 //96 // this method deals with all the chaining work - without it, extend is flat and doesn't work on other extend selectors97 // this is also the most expensive.. and a match on one selector can cause an extension of a selector we had already processed if98 // we look at each selector at a time, as is done in visitRuleset99 var extendIndex, targetExtendIndex, matches, extendsToAdd = [], newSelector, extendVisitor = this, selectorPath, extend, targetExtend, newExtend;100 iterationCount = iterationCount || 0;101 //loop through comparing every extend with every target extend.102 // a target extend is the one on the ruleset we are looking at copy/edit/pasting in place103 // e.g. .a:extend(.b) {} and .b:extend(.c) {} then the first extend extends the second one104 // and the second is the target.105 // the seperation into two lists allows us to process a subset of chains with a bigger set, as is the106 // case when processing media queries107 for(extendIndex = 0; extendIndex < extendsList.length; extendIndex++){108 for(targetExtendIndex = 0; targetExtendIndex < extendsListTarget.length; targetExtendIndex++){109 extend = extendsList[extendIndex];110 targetExtend = extendsListTarget[targetExtendIndex];111 // look for circular references112 if( extend.parent_ids.indexOf( targetExtend.object_id ) >= 0 ){ continue; }113 // find a match in the target extends self selector (the bit before :extend)114 selectorPath = [targetExtend.selfSelectors[0]];115 matches = extendVisitor.findMatch(extend, selectorPath);116 if (matches.length) {117 // we found a match, so for each self selector..118 extend.selfSelectors.forEach(function(selfSelector) {119 // process the extend as usual120 newSelector = extendVisitor.extendSelector(matches, selectorPath, selfSelector);121 // but now we create a new extend from it122 newExtend = new(tree.Extend)(targetExtend.selector, targetExtend.option, 0);123 newExtend.selfSelectors = newSelector;124 // add the extend onto the list of extends for that selector125 newSelector[newSelector.length-1].extendList = [newExtend];126 // record that we need to add it.127 extendsToAdd.push(newExtend);128 newExtend.ruleset = targetExtend.ruleset;129 //remember its parents for circular references130 newExtend.parent_ids = newExtend.parent_ids.concat(targetExtend.parent_ids, extend.parent_ids);131 // only process the selector once.. if we have :extend(.a,.b) then multiple132 // extends will look at the same selector path, so when extending133 // we know that any others will be duplicates in terms of what is added to the css134 if (targetExtend.firstExtendOnThisSelectorPath) {135 newExtend.firstExtendOnThisSelectorPath = true;136 targetExtend.ruleset.paths.push(newSelector);137 }138 });139 }140 }141 }142 if (extendsToAdd.length) {143 // try to detect circular references to stop a stack overflow.144 // may no longer be needed.145 this.extendChainCount++;146 if (iterationCount > 100) {147 var selectorOne = "{unable to calculate}";148 var selectorTwo = "{unable to calculate}";149 try150 {151 selectorOne = extendsToAdd[0].selfSelectors[0].toCSS();152 selectorTwo = extendsToAdd[0].selector.toCSS();153 }154 catch(e) {}155 throw {message: "extend circular reference detected. One of the circular extends is currently:"+selectorOne+":extend(" + selectorTwo+")"};156 }157 // now process the new extends on the existing rules so that we can handle a extending b extending c ectending d extending e...158 return extendsToAdd.concat(extendVisitor.doExtendChaining(extendsToAdd, extendsListTarget, iterationCount+1));159 } else {160 return extendsToAdd;161 }162 },163 visitRule: function (ruleNode, visitArgs) {164 visitArgs.visitDeeper = false;165 },166 visitMixinDefinition: function (mixinDefinitionNode, visitArgs) {167 visitArgs.visitDeeper = false;168 },169 visitSelector: function (selectorNode, visitArgs) {...

Full Screen

Full Screen

Component.js

Source:Component.js Github

copy

Full Screen

2 var utHelper = window.utHelper;3 var testCase = utHelper.prepare(['echarts/model/Component']);4 describe('topologicalTravel', function () {5 testCase('topologicalTravel_base', function (ComponentModel) {6 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});7 ComponentModel.extend({type: 'a1'});8 ComponentModel.extend({type: 'a2'});9 var result = [];10 var allList = ComponentModel.getAllClassMainTypes();11 ComponentModel.topologicalTravel(['m1', 'a1', 'a2'], allList, function (componentType, dependencies) {12 result.push([componentType, dependencies]);13 });14 expect(result).toEqual([['a2', []], ['a1', []], ['m1', ['a1', 'a2']]]);15 });16 testCase('topologicalTravel_a1IsAbsent', function (ComponentModel) {17 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});18 ComponentModel.extend({type: 'a2'});19 var allList = ComponentModel.getAllClassMainTypes();20 var result = [];21 ComponentModel.topologicalTravel(['m1', 'a2'], allList, function (componentType, dependencies) {22 result.push([componentType, dependencies]);23 });24 expect(result).toEqual([['a2', []], ['m1', ['a1', 'a2']]]);25 });26 testCase('topologicalTravel_empty', function (ComponentModel) {27 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});28 ComponentModel.extend({type: 'a1'});29 ComponentModel.extend({type: 'a2'});30 var allList = ComponentModel.getAllClassMainTypes();31 var result = [];32 ComponentModel.topologicalTravel([], allList, function (componentType, dependencies) {33 result.push([componentType, dependencies]);34 });35 expect(result).toEqual([]);36 });37 testCase('topologicalTravel_isolate', function (ComponentModel) {38 ComponentModel.extend({type: 'a2'});39 ComponentModel.extend({type: 'a1'});40 ComponentModel.extend({type: 'm1', dependencies: ['a2']});41 var allList = ComponentModel.getAllClassMainTypes();42 var result = [];43 ComponentModel.topologicalTravel(['a1', 'a2', 'm1'], allList, function (componentType, dependencies) {44 result.push([componentType, dependencies]);45 });46 expect(result).toEqual([['a1', []], ['a2', []], ['m1', ['a2']]]);47 });48 testCase('topologicalTravel_diamond', function (ComponentModel) {49 ComponentModel.extend({type: 'a1', dependencies: []});50 ComponentModel.extend({type: 'a2', dependencies: ['a1']});51 ComponentModel.extend({type: 'a3', dependencies: ['a1']});52 ComponentModel.extend({type: 'm1', dependencies: ['a2', 'a3']});53 var allList = ComponentModel.getAllClassMainTypes();54 var result = [];55 ComponentModel.topologicalTravel(['m1', 'a1', 'a2', 'a3'], allList, function (componentType, dependencies) {56 result.push([componentType, dependencies]);57 });58 expect(result).toEqual([['a1', []], ['a3', ['a1']], ['a2', ['a1']], ['m1', ['a2', 'a3']]]);59 });60 testCase('topologicalTravel_loop', function (ComponentModel) {61 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});62 ComponentModel.extend({type: 'm2', dependencies: ['m1', 'a2']});63 ComponentModel.extend({type: 'a1', dependencies: ['m2', 'a2', 'a3']});64 ComponentModel.extend({type: 'a2'});65 ComponentModel.extend({type: 'a3'});66 var allList = ComponentModel.getAllClassMainTypes();67 expect(function () {68 ComponentModel.topologicalTravel(['m1', 'm2', 'a1'], allList);69 }).toThrowError(/Circl/);70 });71 testCase('topologicalTravel_multipleEchartsInstance', function (ComponentModel) {72 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});73 ComponentModel.extend({type: 'a1'});74 ComponentModel.extend({type: 'a2'});75 var allList = ComponentModel.getAllClassMainTypes();76 var result = [];77 ComponentModel.topologicalTravel(['m1', 'a1', 'a2'], allList, function (componentType, dependencies) {78 result.push([componentType, dependencies]);79 });80 expect(result).toEqual([['a2', []], ['a1', []], ['m1', ['a1', 'a2']]]);81 result = [];82 ComponentModel.extend({type: 'm2', dependencies: ['a1', 'm1']});83 var allList = ComponentModel.getAllClassMainTypes();84 ComponentModel.topologicalTravel(['m2', 'm1', 'a1', 'a2'], allList, function (componentType, dependencies) {85 result.push([componentType, dependencies]);86 });87 expect(result).toEqual([['a2', []], ['a1', []], ['m1', ['a1', 'a2']], ['m2', ['a1', 'm1']]]);88 });89 testCase('topologicalTravel_missingSomeNodeButHasDependencies', function (ComponentModel) {90 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});91 ComponentModel.extend({type: 'a2', dependencies: ['a3']});92 ComponentModel.extend({type: 'a3'});93 ComponentModel.extend({type: 'a4'});94 var result = [];95 var allList = ComponentModel.getAllClassMainTypes();96 ComponentModel.topologicalTravel(['a3', 'm1'], allList, function (componentType, dependencies) {97 result.push([componentType, dependencies]);98 });99 expect(result).toEqual([['a3', []], ['a2', ['a3']], ['m1', ['a1', 'a2']]]);100 var result = [];101 var allList = ComponentModel.getAllClassMainTypes();102 ComponentModel.topologicalTravel(['m1', 'a3'], allList, function (componentType, dependencies) {103 result.push([componentType, dependencies]);104 });105 expect(result).toEqual([['a3', []], ['a2', ['a3']], ['m1', ['a1', 'a2']]]);106 });107 testCase('topologicalTravel_subType', function (ComponentModel) {108 ComponentModel.extend({type: 'm1', dependencies: ['a1', 'a2']});109 ComponentModel.extend({type: 'a1.aaa', dependencies: ['a2']});110 ComponentModel.extend({type: 'a1.bbb', dependencies: ['a3', 'a4']});111 ComponentModel.extend({type: 'a2'});112 ComponentModel.extend({type: 'a3'});113 ComponentModel.extend({type: 'a4'});114 var result = [];115 var allList = ComponentModel.getAllClassMainTypes();116 ComponentModel.topologicalTravel(['m1', 'a1', 'a2', 'a4'], allList, function (componentType, dependencies) {117 result.push([componentType, dependencies]);118 });119 expect(result).toEqual([['a4', []], ['a2',[]], ['a1', ['a2','a3','a4']], ['m1', ['a1', 'a2']]]);120 });121 });...

Full Screen

Full Screen

extend_certificate.js

Source:extend_certificate.js Github

copy

Full Screen

1/**2 * 3 * This file provides all methods for extend_certificate.jsp.4 * 5 * @author Jonathan Schlotz6 *7 */89// ====================================================================================//10// ================================= INITIALIZATION ===================================//11// ====================================================================================//1213$(document).ready(function() {1415 // Method that triggers the 'Aktivieren' button when the 'enter'-key is pressed16 $('#password, #password_confirm').keypress(function(e) {17 if (e.keyCode == 13)18 $('#step2_button_extend').click();19 });20 21});2223// ====================================================================================//24// ================================== AJAX FUNCTIONS ==================================//25// ====================================================================================//2627/**28 * Sends an ajax request to the backend to request a certificate.29 * 30 */31function requestCertificate() {32 setLoading(1)33 $.ajax({34 url : '../RequestCertificateServlet',35 type : 'POST',36 dataType : 'json',37 timeout : 8000,38 success : function(data) {39 if (data.validSession && data.createdRequest) {40 successful(1, "SCS_CERT_REQUEST")41 } else if (data.validSession && data.createdRequest === false) {42 unsuccessful(1, "ERR_CERT_REQUEST")43 } else {44 window.setTimeout(function() {45 location.href = 'login.jsp';46 }, 1000);47 }48 },49 error : function() {50 unsuccessful(1, "ERR_CONNECTION")51 }52 })53}5455/**56 * Sends an ajax request to the backend to activate a certificate57 * 58 */59function activateCertificate() {60 $61 .ajax({62 url : '../ActivateCertificateServlet',63 type : 'POST',64 dataType : 'json',65 data : $('#password').serialize(),66 timeout : 8000,67 success : function(data) {68 if (data.validSession && data.activatedCertificate) {69 successful(2, "SCS_CERT_ACTIIVATION")70 } else if (data.validSession71 && data.activatedCertificate === false) {72 unsuccessful(2, "ERR_CERT_ACTIVATION")73 } else {74 window.setTimeout(function() {75 location.href = 'login.jsp';76 }, 1000);77 }78 },79 error : function() {80 unsuccessful(2, "ERR_CONNECTION")81 }82 })83}8485// ====================================================================================//86// ================================== MAIN FUNCTIONS ==================================//87// ====================================================================================//8889/**90 * Logs out the user.91 * 92 */93function logout() {94 document.form_logout.submit()95}9697/**98 * Checks the length of the password.99 * 100 */101function validatePassword() {102 var regEx = /.{6}/;103104 if ($("#password").val() !== "" && !regEx.test($("#password").val())) {105 buildAndShowMessageBar("WRN_INPUT_PASSWORD", "messagebar_extend")106 $("#page_content_extend").addClass("page_content_move_down")107 } else {108 hideMessageBar()109 }110}111112/**113 * Compare both password field values witch each other.114 * 115 */116function comparePasswords() {117 // Both fields have to be filled out118 if ($("#password").val() !== "" && $("#password_confirm").val() !== "") {119120 // Repeated new password and password have to be the same121 if ($("#password").val() === $("#password_confirm").val()) {122 return true;123124 } else { // If repeated new password and password are not the125 // same126 buildAndShowMessageBar("ERR_INPUT_PASSWORD_COMP",127 "messagebar_extend")128 $("#page_content_extend").addClass("page_content_move_down")129 }130131 } else { // If one field is empty132 buildAndShowMessageBar("WRN_EMPTY_CERT_PWD", "messagebar_extend")133 $("#page_content_extend").addClass("page_content_move_down")134 }135 return false;136}137138/**139 * Executed by a click on the 'Aktivieren' button.140 * 141 */142function onActivateClick() {143 if (comparePasswords()) {144 setLoading(2)145 activateCertificate()146 }147}148149/**150 * Sets the ui area to a loading state.151 * 152 * @param stepNumber The step which is currently shown as active.153 * 154 */155function setLoading(stepNumber) {156 $("#step" + stepNumber + "_panel_body_extend").addClass(157 "panel_next_step_or_loading")158 $("#loading_gif_extend").fadeIn()159 $("#step" + stepNumber + "_button_extend").attr("disabled", "");160 $("#step" + stepNumber + "_button_extend").removeAttr("onclick")161}162163/**164 * Manipulates the ui after successful ajax request.165 * 166 * @param stepNumber The step which is currently shown as active.167 * @param message The message to be displayed in the message bar.168 * 169 */170function successful(stepNumber, message) {171 var stepNumberNextStep = stepNumber + 1172 $("#loading_gif_extend").fadeOut()173 buildAndShowMessageBar(message, "messagebar_extend")174 $("#page_content_extend").addClass("page_content_move_down")175 if (stepNumber > 1) {176 window.setTimeout(function() {177 hideMessageBar()178 $("#step" + stepNumber + "_content_extend").slideUp()179 $("#step" + stepNumber + "_icon_extend").addClass(180 "messageicon_border_success")181 $("#step" + stepNumber + "_iconfont_extend").addClass(182 "messageicon_success")183 $("#step" + stepNumber + "_header_extend").addClass(184 "panelheader_completed")185 $("#step" + stepNumberNextStep + "_content_extend").slideDown()186 $("#step" + stepNumberNextStep + "_header_extend").addClass(187 "panelheader_set_current_step")188 }, 1500);189 } else {190 window.setTimeout(function() {191 $("#step" + stepNumber + "_content_extend").slideUp()192 $("#step" + stepNumber + "_icon_extend").addClass(193 "messageicon_border_success")194 $("#step" + stepNumber + "_iconfont_extend").addClass(195 "messageicon_success")196 $("#step" + stepNumber + "_header_extend").addClass(197 "panelheader_completed")198 buildAndShowMessageBar("WRN_CERT_REQUEST_WAITING",199 "messagebar_extend")200 }, 1500);201 }202}203204/**205 * Manipulates the ui after unsuccessful ajax request.206 * 207 * @param stepNumber The step which is currently shown as active.208 * @param message The message which will be displayed in the message bar.209 * 210 */211function unsuccessful(stepNumber, message) {212 $("#step" + stepNumber + "_panel_body_extend").removeClass("panel_next_step_or_loading")213 $("#loading_gif_extend").fadeOut()214 $("#step" + stepNumber + "_button_extend").removeAttr("disabled")215 216 if (stepNumber === 1) {217 $("#step" + stepNumber + "_button_extend").attr("onclick","requestCertificate()")218 } else if (stepNumber === 2) {219 $("#step" + stepNumber + "_button_extend").attr("onclick","onActivateClick()")220 }221 222 buildAndShowMessageBar(message, "messagebar_extend")223 $("#page_content_extend").addClass("page_content_move_down")224225 window.setTimeout(function() {226 hideMessageBar()227 }, 1500);228}229230/**231 * Hides the message bar.232 * 233 */234function hideMessageBar() {235 $("#messagebar_extend").addClass("messagebar_hidden")236 $("#page_content_extend").removeClass("page_content_move_down") ...

Full Screen

Full Screen

base.js

Source:base.js Github

copy

Full Screen

...104 return this;105 }106};107// initialise108Base = Base.extend({109 constructor: function() {110 this.extend(arguments[0]);111 }112}, {113 ancestor: Object,114 version: "1.1",115 116 forEach: function(object, block, context) {117 for (var key in object) {118 if (this.prototype[key] === undefined) {119 block.call(context, object[key], key, object);120 }121 }122 },123 124 implement: function() {125 for (var i = 0; i < arguments.length; i++) {126 if (typeof arguments[i] == "function") {127 // if it's a function, call it128 arguments[i](this.prototype);129 } else {130 // add the interface using the extend method131 this.prototype.extend(arguments[i]);132 }133 }134 return this;135 },136 137 toString: function() {138 return String(this.valueOf());139 }...

Full Screen

Full Screen

extend.spec.js

Source:extend.spec.js Github

copy

Full Screen

1import Vue from 'vue'23describe('Global API: extend', () => {4 it('should correctly merge options', () => {5 const Test = Vue.extend({6 name: 'test',7 a: 1,8 b: 29 })10 expect(Test.options.a).toBe(1)11 expect(Test.options.b).toBe(2)12 expect(Test.super).toBe(Vue)13 const t = new Test({14 a: 215 })16 expect(t.$options.a).toBe(2)17 expect(t.$options.b).toBe(2)18 // inheritance19 const Test2 = Test.extend({20 a: 221 })22 expect(Test2.options.a).toBe(2)23 expect(Test2.options.b).toBe(2)24 const t2 = new Test2({25 a: 326 })27 expect(t2.$options.a).toBe(3)28 expect(t2.$options.b).toBe(2)29 })3031 it('should warn invalid names', () => {32 Vue.extend({ name: '123' })33 expect('Invalid component name: "123"').toHaveBeenWarned()34 Vue.extend({ name: '_fesf' })35 expect('Invalid component name: "_fesf"').toHaveBeenWarned()36 Vue.extend({ name: 'Some App' })37 expect('Invalid component name: "Some App"').toHaveBeenWarned()38 })3940 it('should work when used as components', () => {41 const foo = Vue.extend({42 template: '<span>foo</span>'43 })44 const bar = Vue.extend({45 template: '<span>bar</span>'46 })47 const vm = new Vue({48 template: '<div><foo></foo><bar></bar></div>',49 components: { foo, bar }50 }).$mount()51 expect(vm.$el.innerHTML).toBe('<span>foo</span><span>bar</span>')52 })5354 it('should merge lifecycle hooks', () => {55 const calls = []56 const A = Vue.extend({57 created () {58 calls.push(1)59 }60 })61 const B = A.extend({62 created () {63 calls.push(2)64 }65 })66 new B({67 created () {68 calls.push(3)69 }70 })71 expect(calls).toEqual([1, 2, 3])72 })7374 it('should not merge nested mixins created with Vue.extend', () => {75 const A = Vue.extend({76 created: () => {}77 })78 const B = Vue.extend({79 mixins: [A],80 created: () => {}81 })82 const C = Vue.extend({83 extends: B,84 created: () => {}85 })86 const D = Vue.extend({87 mixins: [C],88 created: () => {}89 })90 expect(D.options.created.length).toBe(4)91 })9293 it('should merge methods', () => {94 const A = Vue.extend({95 methods: {96 a () { return this.n }97 }98 })99 const B = A.extend({100 methods: {101 b () { return this.n + 1 }102 }103 })104 const b = new B({105 data: { n: 0 },106 methods: {107 c () { return this.n + 2 }108 }109 })110 expect(b.a()).toBe(0)111 expect(b.b()).toBe(1)112 expect(b.c()).toBe(2)113 })114115 it('should merge assets', () => {116 const A = Vue.extend({117 components: {118 aa: {119 template: '<div>A</div>'120 }121 }122 })123 const B = A.extend({124 components: {125 bb: {126 template: '<div>B</div>'127 }128 }129 })130 const b = new B({131 template: '<div><aa></aa><bb></bb></div>'132 }).$mount()133 expect(b.$el.innerHTML).toBe('<div>A</div><div>B</div>')134 })135136 it('caching', () => {137 const options = {138 template: '<div></div>'139 }140 const A = Vue.extend(options)141 const B = Vue.extend(options)142 expect(A).toBe(B)143 })144145 // #4767146 it('extended options should use different identify from parent', () => {147 const A = Vue.extend({ computed: {}})148 const B = A.extend()149 B.options.computed.b = () => 'foo'150 expect(B.options.computed).not.toBe(A.options.computed)151 expect(A.options.computed.b).toBeUndefined()152 }) ...

Full Screen

Full Screen

index.js

Source:index.js Github

copy

Full Screen

...14 * constructor onto `Child` constructors.15 *16 * ```js17 * var extend = require('static-extend');18 * Parent.extend = extend(Parent);19 *20 * // optionally pass a custom merge function as the second arg21 * Parent.extend = extend(Parent, function(Child) {22 * Child.prototype.mixin = function(key, val) {23 * Child.prototype[key] = val;24 * };25 * });26 *27 * // extend "child" constructors28 * Parent.extend(Child);29 *30 * // optionally define prototype methods as the second arg31 * Parent.extend(Child, {32 * foo: function() {},33 * bar: function() {}34 * });35 * ```36 * @param {Function} `Parent` Parent ctor37 * @param {Function} `extendFn` Optional extend function for handling any necessary custom merging. Useful when updating methods that require a specific prototype.38 * @param {Function} `Child` Child ctor39 * @param {Object} `proto` Optionally pass additional prototype properties to inherit.40 * @return {Object}41 * @api public42 */43function extend(Parent, extendFn) {44 if (typeof Parent !== 'function') {45 throw new TypeError('expected Parent to be a function.');46 }47 return function(Ctor, proto) {48 if (typeof Ctor !== 'function') {49 throw new TypeError('expected Ctor to be a function.');50 }51 util.inherits(Ctor, Parent);52 copy(Ctor, Parent);53 // proto can be null or a plain object54 if (typeof proto === 'object') {55 var obj = Object.create(proto);56 for (var k in obj) {57 Ctor.prototype[k] = obj[k];58 }59 }60 // keep a reference to the parent prototype61 define(Ctor.prototype, '_parent_', {62 configurable: true,63 set: function() {},64 get: function() {65 return Parent.prototype;66 }67 });68 if (typeof extendFn === 'function') {69 extendFn(Ctor, Parent);70 }71 Ctor.extend = extend(Ctor, extendFn);72 };73};74/**75 * Expose `extend`76 */...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const { extend } = require('@codeceptjs/configure');2const playwright = require('playwright');3extend(playwright);4const { extend } = require('@codeceptjs/configure');5const puppeteer = require('puppeteer');6extend(puppeteer);7const { extend } = require('@codeceptjs/configure');8const webdriverio = require('webdriverio');9extend(webdriverio);10const { extend } = require('@codeceptjs/configure');11const testcafe = require('testcafe');12extend(testcafe);13const { extend } = require('@codeceptjs/configure');14const protractor = require('protractor');15extend(protractor);16const { extend } = require('@codeceptjs/configure');17const nightmare = require('nightmare');18extend(nightmare);19const { extend } = require('@codeceptjs/configure');20const detox = require('detox');21extend(detox);22const { extend } = require('@codeceptjs/configure');23const detox = require('detox');24extend(detox);25const { extend } = require('@codeceptjs/configure');26const detox = require('detox');27extend(detox);28const { extend } = require('@codeceptjs/configure');29const detox = require('detox');30extend(detox);31const { extend } = require('@codeceptjs/configure');32const detox = require('detox');33extend(detox);34const { extend } = require('@codeceptjs/configure');35const detox = require('detox');36extend(detox);37const { extend } = require('@codeceptjs/configure');38const detox = require('detox');39extend(detox);40const { extend } = require('@codeceptjs/configure');41const detox = require('det

Full Screen

Using AI Code Generation

copy

Full Screen

1const { extend } = require('@playwright/test');2const { expect } = require('@playwright/test');3const { test, expect } = require('@playwright/test');4const { expect } = require('@playwright/test');5const { expect } = require('@playwright/test');6const { expect

Full Screen

Using AI Code Generation

copy

Full Screen

1const { extend } = require('@codeceptjs/configure');2const playwright = require('playwright');3const playwrightConfig = {4 chrome: {5 },6};7const playwrightHelper = require('codeceptjs-helper-playwright');8extend(playwrightHelper, playwrightConfig);9exports.config = {10 helpers: {11 },12 include: {},13 mocha: {},14};15const { setHeadlessWhen } = require('@codeceptjs/configure');16const playwright = require('playwright');17const { config } = require('./test');18exports.config = config;19setHeadlessWhen(process.env.HEADLESS);

Full Screen

Using AI Code Generation

copy

Full Screen

1const { extend } = require('@codeceptjs/configure');2const { Playwright } = require('@codeceptjs/playwright');3const playwright = new Playwright();4const config = {5 helpers: {6 Playwright: {7 }8 },9 include: {10 },11 mocha: {},12};13module.exports = extend(config, playwright);

Full Screen

Using AI Code Generation

copy

Full Screen

1const { extend } = require('@codeceptjs/configure');2const Playwright = require('codeceptjs/lib/helper/Playwright');3class MyPlaywright extends Playwright {4 async _beforeSuite() {5 await super._beforeSuite();6 this.page.addInitScript(() => {7 });8 }9}10exports.config = extend({11 helpers: {12 Playwright: {13 },14 },15 include: {16 },17 mocha: {},18 gherkin: {},19 plugins: {},20}, new MyPlaywright());21const { I } = inject();22module.exports = {23 _init() {24 },25};26Feature('Test');27Scenario('test something', ({ I }) => {28 I.amOnPage('/');29});30Feature('Test');31Scenario('test something', ({ I }) => {32 I.amOnPage('/');33 I.executeScript(() => {34 });35});36Feature('Test');37Scenario('test something', ({ I }) => {38 I.amOnPage('/');39 I.executeAsyncScript(() => {40 });41});42Feature('Test');43Scenario('test something', ({ I }) => {44 I.amOnPage('/');45 I.grabSource();46});47Feature('Test');48Scenario('test something', ({ I }) => {49 I.amOnPage('/');50 I.grabBrowserLogs();51});52Feature('Test');53Scenario('test something', ({ I }) => {54 I.amOnPage('/');55 I.grabPerformanceTiming();56});57Feature('Test');58Scenario('test something', ({ I }) => {59 I.amOnPage('/');60 I.amOutsideAngularApp();61});

Full Screen

Using AI Code Generation

copy

Full Screen

1const { extend } = require('@playwright/test');2const myNewMethod = async function () {3 console.log('my new method');4};5const newPage = extend.page.extend({6});7module.exports = {8};9const { newPage } = require('./test.js');10test('my test', async ({ page }) => {11 await page.myNewMethod();12});13test.describe('my test', () => {14 test.use({ page: newPage });15 test('my test', async ({ page }) => {16 await page.myNewMethod();17 });18});

Full Screen

Playwright tutorial

LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright Internal automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful