How to use tag method in Playwright Internal

Best JavaScript code snippet using playwright-internal

attributes.js

Source:attributes.js Github

copy

Full Screen

1function getProperty(propertyName) {2 return el => el[propertyName];3}4function getAttribute(attributeName) {5 return el => {6 if (el.namespaceURI === '') {7 throw new Error('Not an HTML element.');8 }9 return el.getAttribute(attributeName);10 };11}12function getSVGProperty(propertyName) {13 return el => el[propertyName];14}15function getSVGAttribute(attributeName) {16 return el => {17 if (el.namespaceURI !== 'http://www.w3.org/2000/svg') {18 throw new Error('Not an SVG element.');19 }20 return el.getAttribute(attributeName);21 };22}23const attributes = [24 {name: 'about', read: getAttribute('about')},25 {name: 'aBoUt', read: getAttribute('about')},26 {27 name: 'accent-Height',28 containerTagName: 'svg',29 tagName: 'font-face',30 read: getSVGAttribute('accent-height'),31 },32 {33 name: 'accent-height',34 containerTagName: 'svg',35 tagName: 'font-face',36 read: getSVGAttribute('accent-height'),37 },38 {39 name: 'accentHeight',40 containerTagName: 'svg',41 tagName: 'font-face',42 read: getSVGAttribute('accent-height'),43 },44 {name: 'accept', tagName: 'input'},45 {name: 'accept-charset', tagName: 'form', read: getProperty('acceptCharset')},46 {name: 'accept-Charset', tagName: 'form', read: getProperty('acceptCharset')},47 {name: 'acceptCharset', tagName: 'form'},48 {name: 'accessKey'},49 {50 name: 'accumulate',51 containerTagName: 'svg',52 tagName: 'animate',53 read: getSVGAttribute('accumulate'),54 },55 {name: 'action', tagName: 'form', overrideStringValue: 'https://reactjs.com'},56 {57 name: 'additive',58 containerTagName: 'svg',59 tagName: 'animate',60 read: getSVGAttribute('additive'),61 },62 {63 name: 'alignment-baseline',64 containerTagName: 'svg',65 tagName: 'textPath',66 read: getSVGAttribute('alignment-baseline'),67 },68 {69 name: 'alignmentBaseline',70 containerTagName: 'svg',71 tagName: 'textPath',72 read: getSVGAttribute('alignment-baseline'),73 },74 {75 name: 'allowFullScreen',76 tagName: 'iframe',77 read: getProperty('allowFullscreen'),78 },79 {80 name: 'allowfullscreen',81 tagName: 'iframe',82 read: getProperty('allowFullscreen'),83 },84 {name: 'allowFullscreen', tagName: 'iframe'},85 {86 name: 'allowReorder',87 containerTagName: 'svg',88 tagName: 'switch',89 read: getSVGAttribute('allowReorder'),90 },91 {92 name: 'alphabetic',93 containerTagName: 'svg',94 tagName: 'font-face',95 read: getSVGAttribute('alphabetic'),96 },97 {name: 'alt', tagName: 'img'},98 {99 name: 'amplitude',100 containerTagName: 'svg',101 tagName: 'feFuncA',102 read: getSVGProperty('amplitude'),103 },104 {105 name: 'arabic-form',106 containerTagName: 'svg',107 tagName: 'glyph',108 read: getSVGAttribute('arabic-form'),109 },110 {111 name: 'arabicForm',112 containerTagName: 'svg',113 tagName: 'glyph',114 read: getSVGAttribute('arabic-form'),115 },116 {name: 'aria', read: getAttribute('aria')},117 {name: 'aria-', read: getAttribute('aria-')},118 {name: 'aria-invalidattribute', read: getAttribute('aria-invalidattribute')},119 {name: 'as', tagName: 'link'},120 {121 name: 'ascent',122 containerTagName: 'svg',123 tagName: 'font-face',124 read: getSVGAttribute('ascent'),125 },126 {name: 'async', tagName: 'script'},127 {128 name: 'attributeName',129 containerTagName: 'svg',130 tagName: 'animate',131 read: getSVGAttribute('attributeName'),132 },133 {134 name: 'attributeType',135 containerTagName: 'svg',136 tagName: 'animate',137 read: getSVGAttribute('attributeType'),138 },139 {140 name: 'autoCapitalize',141 tagName: 'input',142 read: getProperty('autocapitalize'),143 overrideStringValue: 'words',144 },145 {146 name: 'autoComplete',147 tagName: 'input',148 overrideStringValue: 'email',149 read: getProperty('autocomplete'),150 },151 {152 name: 'autoCorrect',153 tagName: 'input',154 overrideStringValue: 'off',155 read: getAttribute('autocorrect'),156 },157 {name: 'autoPlay', tagName: 'video', read: getProperty('autoplay')},158 {159 name: 'autoReverse',160 containerTagName: 'svg',161 tagName: 'animate',162 read: getSVGAttribute('autoreverse'),163 },164 {name: 'autoSave', tagName: 'input', read: getAttribute('autosave')},165 {166 name: 'azimuth',167 containerTagName: 'svg',168 tagName: 'feDistantLight',169 read: getSVGProperty('azimuth'),170 },171 {172 name: 'baseFrequency',173 containerTagName: 'svg',174 tagName: 'feTurbulence',175 read: getSVGAttribute('baseFrequency'),176 },177 {178 name: 'baseline-shift',179 containerTagName: 'svg',180 tagName: 'textPath',181 read: getSVGAttribute('baseline-shift'),182 },183 {184 name: 'baselineShift',185 containerTagName: 'svg',186 tagName: 'textPath',187 read: getSVGAttribute('baseline-shift'),188 },189 {name: 'baseProfile', tagName: 'svg', read: getSVGAttribute('baseProfile')},190 {191 name: 'bbox',192 containerTagName: 'svg',193 tagName: 'font-face',194 read: getSVGAttribute('bbox'),195 },196 {197 name: 'begin',198 containerTagName: 'svg',199 tagName: 'animate',200 read: getSVGAttribute('begin'),201 },202 {203 name: 'bias',204 containerTagName: 'svg',205 tagName: 'feConvolveMatrix',206 read: getSVGProperty('bias'),207 },208 {209 name: 'by',210 containerTagName: 'svg',211 tagName: 'animate',212 read: getSVGAttribute('by'),213 },214 {215 name: 'calcMode',216 containerTagName: 'svg',217 tagName: 'animate',218 overrideStringValue: 'discrete',219 read: getSVGAttribute('calcMode'),220 },221 {222 name: 'cap-height',223 containerTagName: 'svg',224 tagName: 'font-face',225 read: getSVGAttribute('cap-height'),226 },227 {228 name: 'capHeight',229 containerTagName: 'svg',230 tagName: 'font-face',231 read: getSVGAttribute('cap-height'),232 },233 {234 name: 'capture',235 tagName: 'input',236 overrideStringValue: 'environment',237 read: getAttribute('capture'),238 },239 {name: 'cellPadding', tagName: 'table'},240 {name: 'cellSpacing', tagName: 'table'},241 {242 name: 'challenge',243 tagName: 'keygen',244 read: getAttribute('challenge'), // The property is not supported in Chrome.245 },246 {name: 'charSet', tagName: 'script', read: getProperty('charset')},247 {name: 'checked', tagName: 'input', extraProps: {onChange() {}}},248 {name: 'Checked', tagName: 'input', read: getAttribute('Checked')},249 {name: 'Children', read: getAttribute('children')},250 {name: 'children'},251 {252 name: 'cite',253 tagName: 'blockquote',254 overrideStringValue: 'http://reactjs.com/',255 },256 {name: 'class', read: getAttribute('class')},257 {name: 'classID', tagName: 'object', read: getAttribute('classid')},258 {name: 'className'},259 {name: 'clip', tagName: 'svg', read: getAttribute('clip')},260 {261 name: 'clip-path',262 containerTagName: 'svg',263 tagName: 'path',264 read: getSVGAttribute('clip-path'),265 },266 {267 name: 'clipPath',268 containerTagName: 'svg',269 tagName: 'path',270 read: getSVGAttribute('clip-path'),271 },272 {273 name: 'clipPathUnits',274 containerTagName: 'svg',275 tagName: 'clipPath',276 overrideStringValue: 'objectBoundingBox',277 read: getSVGProperty('clipPathUnits'),278 },279 {280 name: 'clip-rule',281 containerTagName: 'svg',282 tagName: 'path',283 read: getSVGAttribute('clip-rule'),284 },285 {286 name: 'clipRule',287 containerTagName: 'svg',288 tagName: 'path',289 read: getSVGAttribute('clip-rule'),290 },291 {292 name: 'color',293 containerTagName: 'svg',294 tagName: 'text',295 read: getSVGAttribute('color'),296 },297 {298 name: 'color-interpolation',299 containerTagName: 'svg',300 tagName: 'animate',301 overrideStringValue: 'sRGB',302 read: getSVGAttribute('color-interpolation'),303 },304 {305 name: 'colorInterpolation',306 containerTagName: 'svg',307 tagName: 'animate',308 overrideStringValue: 'sRGB',309 read: getSVGAttribute('color-interpolation'),310 },311 {312 name: 'color-interpolation-filters',313 containerTagName: 'svg',314 tagName: 'feComposite',315 overrideStringValue: 'sRGB',316 read: getSVGAttribute('color-interpolation-filters'),317 },318 {319 name: 'colorInterpolationFilters',320 containerTagName: 'svg',321 tagName: 'feComposite',322 overrideStringValue: 'sRGB',323 read: getSVGAttribute('color-interpolation-filters'),324 },325 {326 name: 'color-profile',327 containerTagName: 'svg',328 tagName: 'image',329 overrideStringValue: 'sRGB',330 read: getSVGAttribute('color-profile'),331 },332 {333 name: 'colorProfile',334 containerTagName: 'svg',335 tagName: 'image',336 overrideStringValue: 'sRGB',337 read: getSVGAttribute('color-profile'),338 },339 {340 name: 'color-rendering',341 containerTagName: 'svg',342 tagName: 'animate',343 overrideStringValue: 'optimizeSpeed',344 read: getSVGAttribute('color-rendering'),345 },346 {347 name: 'colorRendering',348 containerTagName: 'svg',349 tagName: 'animate',350 overrideStringValue: 'optimizeSpeed',351 read: getSVGAttribute('color-rendering'),352 },353 {name: 'cols', tagName: 'textarea'},354 {name: 'colSpan', containerTagName: 'tr', tagName: 'td'},355 {name: 'content', tagName: 'meta'},356 {name: 'contentEditable'},357 {358 name: 'contentScriptType',359 tagName: 'svg',360 read: getSVGAttribute('contentScriptType'),361 },362 {363 name: 'contentStyleType',364 tagName: 'svg',365 read: getSVGAttribute('contentStyleType'),366 },367 {name: 'contextMenu', read: getAttribute('contextmenu')}, // TODO: Read the property by rendering a menu with the ID.368 {name: 'controls', tagName: 'video'},369 {name: 'coords', tagName: 'a'},370 {name: 'crossOrigin', tagName: 'script'},371 {name: 'cursor', tag: 'svg', read: getAttribute('cursor')},372 {373 name: 'cx',374 containerTagName: 'svg',375 tagName: 'circle',376 overrideStringValue: '10px',377 read: getSVGProperty('cx'),378 },379 {380 name: 'cy',381 containerTagName: 'svg',382 tagName: 'circle',383 overrideStringValue: '10%',384 read: getSVGProperty('cy'),385 },386 {387 name: 'd',388 containerTagName: 'svg',389 tagName: 'path',390 read: getSVGAttribute('d'),391 },392 {393 name: 'dangerouslySetInnerHTML',394 read: getAttribute('dangerouslySetInnerHTML'),395 },396 {397 name: 'DangerouslySetInnerHTML',398 read: getAttribute('DangerouslySetInnerHTML'),399 },400 {name: 'data', read: getAttribute('data')},401 {name: 'data-', read: getAttribute('data-')},402 {name: 'data-unknownattribute', read: getAttribute('data-unknownattribute')},403 {name: 'datatype', read: getAttribute('datatype')},404 {405 name: 'dateTime',406 tagName: 'time',407 overrideStringValue: '2001-05-15T19:00',408 read: getAttribute('datetime'),409 },410 {411 name: 'decelerate',412 containerTagName: 'svg',413 tagName: 'animate',414 read: getSVGAttribute('decelerate'),415 },416 {name: 'default', tagName: 'track'},417 {418 name: 'defaultchecked',419 tagName: 'input',420 read: getAttribute('defaultchecked'),421 },422 {name: 'defaultChecked', tagName: 'input'},423 {name: 'defaultValue', tagName: 'input'},424 {name: 'defaultValuE', tagName: 'input', read: getAttribute('defaultValuE')},425 {name: 'defer', tagName: 'script'},426 {427 name: 'descent',428 containerTagName: 'svg',429 tagName: 'font-face',430 read: getSVGAttribute('descent'),431 },432 {433 name: 'diffuseConstant',434 containerTagName: 'svg',435 tagName: 'feDiffuseLighting',436 read: getSVGProperty('diffuseConstant'),437 },438 {name: 'dir', overrideStringValue: 'rtl'},439 {440 name: 'direction',441 containerTagName: 'svg',442 tagName: 'text',443 overrideStringValue: 'rtl',444 read: getSVGAttribute('direction'),445 },446 {name: 'disabled', tagName: 'input'},447 {448 name: 'display',449 tagName: 'svg',450 overrideStringValue: 'list-item',451 read: getAttribute('display'),452 },453 {454 name: 'divisor',455 containerTagName: 'svg',456 tagName: 'feConvolveMatrix',457 read: getSVGProperty('divisor'),458 },459 {460 name: 'dominant-baseline',461 containerTagName: 'svg',462 tagName: 'text',463 read: getSVGAttribute('dominant-baseline'),464 },465 {466 name: 'dominantBaseline',467 containerTagName: 'svg',468 tagName: 'text',469 read: getSVGAttribute('dominant-baseline'),470 },471 {name: 'download', tagName: 'a'},472 {name: 'dOwNlOaD', tagName: 'a', read: getAttribute('dOwNlOaD')},473 {name: 'draggable'},474 {475 name: 'dur',476 containerTagName: 'svg',477 tagName: 'animate',478 read: getSVGAttribute('dur'),479 },480 {481 name: 'dx',482 containerTagName: 'svg',483 tagName: 'text',484 overrideStringValue: '1pt 2px 3em',485 read: getSVGProperty('dx'),486 },487 {488 name: 'dX',489 containerTagName: 'svg',490 tagName: 'text',491 overrideStringValue: '1pt 2px 3em',492 read: getSVGProperty('dx'),493 },494 {495 name: 'dy',496 containerTagName: 'svg',497 tagName: 'text',498 overrideStringValue: '1 2 3',499 read: getSVGProperty('dy'),500 },501 {502 name: 'dY',503 containerTagName: 'svg',504 tagName: 'text',505 overrideStringValue: '1 2 3',506 read: getSVGProperty('dy'),507 },508 {509 name: 'edgeMode',510 containerTagName: 'svg',511 tagName: 'feConvolveMatrix',512 overrideStringValue: 'wrap',513 read: getSVGProperty('edgeMode'),514 },515 {516 name: 'elevation',517 containerTagName: 'svg',518 tagName: 'feDistantLight',519 read: getSVGProperty('elevation'),520 },521 {522 name: 'enable-background',523 containerTagName: 'svg',524 tagName: 'path',525 read: getSVGAttribute('enable-background'),526 },527 {528 name: 'enableBackground',529 containerTagName: 'svg',530 tagName: 'path',531 read: getSVGAttribute('enable-background'),532 },533 {534 name: 'encType',535 tagName: 'form',536 overrideStringValue: 'text/plain',537 read: getProperty('enctype'),538 },539 {540 name: 'end',541 containerTagName: 'svg',542 tagName: 'animate',543 read: getSVGAttribute('end'),544 },545 {546 name: 'exponent',547 read: getSVGProperty('exponent'),548 containerTagName: 'svg',549 tagName: 'feFuncA',550 },551 {552 name: 'externalResourcesRequired',553 containerTagName: 'svg',554 tagName: 'path',555 read: getSVGAttribute('externalResourcesRequired'),556 },557 {558 name: 'fill',559 containerTagName: 'svg',560 tagName: 'path',561 read: getSVGAttribute('fill'),562 },563 {564 name: 'fillOpacity',565 containerTagName: 'svg',566 tagName: 'circle',567 read: getSVGAttribute('fill-opacity'),568 },569 {570 name: 'fill-opacity',571 containerTagName: 'svg',572 tagName: 'circle',573 read: getSVGAttribute('fill-opacity'),574 },575 {576 name: 'fillRule',577 containerTagName: 'svg',578 tagName: 'circle',579 read: getSVGAttribute('fill-rule'),580 },581 {582 name: 'fill-rule',583 containerTagName: 'svg',584 tagName: 'circle',585 read: getSVGAttribute('fill-rule'),586 },587 {588 name: 'filter',589 containerTagName: 'svg',590 tagName: 'g',591 read: getSVGAttribute('filter'),592 },593 {594 name: 'filterRes',595 containerTagName: 'svg',596 tagName: 'filter',597 read: getSVGAttribute('filterRes'),598 },599 {600 name: 'filterUnits',601 containerTagName: 'svg',602 tagName: 'filter',603 overrideStringValue: 'userSpaceOnUse',604 read: getSVGProperty('filterUnits'),605 },606 {607 name: 'flood-color',608 containerTagName: 'svg',609 tagName: 'feflood',610 overrideStringValue: 'currentColor',611 read: getSVGAttribute('flood-color'),612 },613 {614 name: 'floodColor',615 containerTagName: 'svg',616 tagName: 'feflood',617 overrideStringValue: 'currentColor',618 read: getSVGAttribute('flood-color'),619 },620 {621 name: 'flood-opacity',622 containerTagName: 'svg',623 tagName: 'feflood',624 overrideStringValue: 'inherit',625 read: getSVGAttribute('flood-opacity'),626 },627 {628 name: 'floodOpacity',629 containerTagName: 'svg',630 tagName: 'feflood',631 overrideStringValue: 'inherit',632 read: getSVGAttribute('flood-opacity'),633 },634 {name: 'focusable', tagName: 'p', read: getAttribute('focusable')},635 {636 name: 'font-family',637 read: getSVGAttribute('font-family'),638 containerTagName: 'svg',639 tagName: 'font-face',640 },641 {642 name: 'font-size',643 read: getSVGAttribute('font-size'),644 containerTagName: 'svg',645 tagName: 'font-face',646 },647 {648 name: 'font-size-adjust',649 containerTagName: 'svg',650 tagName: 'text',651 read: getSVGAttribute('font-size-adjust'),652 },653 {654 name: 'font-stretch',655 read: getSVGAttribute('font-stretch'),656 containerTagName: 'svg',657 tagName: 'font-face',658 },659 {660 name: 'font-style',661 read: getSVGAttribute('font-style'),662 containerTagName: 'svg',663 tagName: 'font-face',664 },665 {666 name: 'font-variant',667 read: getSVGAttribute('font-variant'),668 containerTagName: 'svg',669 tagName: 'font-face',670 },671 {672 name: 'font-weight',673 read: getSVGAttribute('font-weight'),674 containerTagName: 'svg',675 tagName: 'font-face',676 },677 {678 name: 'fontFamily',679 read: getSVGAttribute('font-family'),680 containerTagName: 'svg',681 tagName: 'font-face',682 },683 {684 name: 'fontSize',685 read: getSVGAttribute('font-size'),686 containerTagName: 'svg',687 tagName: 'font-face',688 },689 {690 name: 'fontSizeAdjust',691 containerTagName: 'svg',692 tagName: 'text',693 read: getSVGAttribute('font-size-adjust'),694 },695 {696 name: 'fontStretch',697 read: getSVGAttribute('font-stretch'),698 containerTagName: 'svg',699 tagName: 'font-face',700 },701 {702 name: 'fontStyle',703 read: getSVGAttribute('font-style'),704 containerTagName: 'svg',705 tagName: 'font-face',706 },707 {708 name: 'fontVariant',709 read: getSVGAttribute('font-variant'),710 containerTagName: 'svg',711 tagName: 'font-face',712 },713 {714 name: 'fontWeight',715 read: getSVGAttribute('font-weight'),716 containerTagName: 'svg',717 tagName: 'font-face',718 },719 {name: 'for', tagName: 'label', read: getProperty('htmlFor')},720 {name: 'fOr', tagName: 'label', read: getProperty('htmlFor')},721 {name: 'form', read: getAttribute('form')}, // TODO: Read the property by rendering into a form with i722 {723 name: 'formAction',724 tagName: 'input',725 overrideStringValue: 'https://reactjs.com',726 },727 {728 name: 'format',729 read: getSVGAttribute('format'),730 containerTagName: 'svg',731 tagName: 'altGlyph',732 },733 {name: 'formEncType', tagName: 'input', read: getProperty('formEnctype')},734 {name: 'formMethod', tagName: 'input', overrideStringValue: 'POST'},735 {name: 'formNoValidate', tagName: 'input'},736 {name: 'formTarget', tagName: 'input'},737 {name: 'frameBorder', tagName: 'iframe'},738 {739 name: 'from',740 read: getSVGAttribute('from'),741 containerTagName: 'svg',742 tagName: 'animate',743 },744 {745 name: 'fx',746 read: getSVGProperty('fx'),747 containerTagName: 'svg',748 overrideStringValue: '10px',749 tagName: 'radialGradient',750 },751 {752 name: 'fX',753 containerTagName: 'svg',754 tagName: 'radialGradient',755 overrideStringValue: '10px',756 read: getSVGProperty('fx'),757 },758 {759 name: 'fY',760 containerTagName: 'svg',761 tagName: 'radialGradient',762 overrideStringValue: '20em',763 read: getSVGProperty('fy'),764 },765 {766 name: 'fy',767 read: getSVGProperty('fy'),768 containerTagName: 'svg',769 overrideStringValue: '20em',770 tagName: 'radialGradient',771 },772 {773 name: 'G1',774 containerTagName: 'svg',775 tagName: 'hkern',776 read: getSVGAttribute('g1'),777 },778 {779 name: 'g1',780 read: getSVGAttribute('g1'),781 containerTagName: 'svg',782 tagName: 'hkern',783 },784 {785 name: 'G2',786 containerTagName: 'svg',787 tagName: 'hkern',788 read: getSVGAttribute('g2'),789 },790 {791 name: 'g2',792 read: getSVGAttribute('g2'),793 containerTagName: 'svg',794 tagName: 'hkern',795 },796 {797 name: 'glyph-name',798 read: getSVGAttribute('glyph-name'),799 containerTagName: 'svg',800 tagName: 'glyph',801 },802 {803 name: 'glyph-orientation-horizontal',804 containerTagName: 'svg',805 tagName: 'text',806 read: getSVGAttribute('glyph-orientation-horizontal'),807 },808 {809 name: 'glyph-orientation-vertical',810 containerTagName: 'svg',811 tagName: 'text',812 read: getSVGAttribute('glyph-orientation-vertical'),813 },814 {815 name: 'glyphName',816 read: getSVGAttribute('glyph-name'),817 containerTagName: 'svg',818 tagName: 'glyph',819 },820 {821 name: 'glyphOrientationHorizontal',822 containerTagName: 'svg',823 tagName: 'text',824 read: getSVGAttribute('glyph-orientation-horizontal'),825 },826 {827 name: 'glyphOrientationVertical',828 containerTagName: 'svg',829 tagName: 'text',830 read: getSVGAttribute('glyph-orientation-vertical'),831 },832 {833 name: 'glyphRef',834 read: getSVGAttribute('glyph-ref'),835 containerTagName: 'svg',836 tagName: 'altGlyph',837 },838 {839 name: 'gradientTransform',840 read: getSVGProperty('gradientTransform'),841 containerTagName: 'svg',842 overrideStringValue:843 'translate(-10,-20) scale(2) rotate(45) translate(5,10)',844 tagName: 'linearGradient',845 },846 {847 name: 'gradientUnits',848 read: getSVGProperty('gradientUnits'),849 containerTagName: 'svg',850 overrideStringValue: 'userSpaceOnUse',851 tagName: 'linearGradient',852 },853 {854 name: 'hanging',855 read: getSVGAttribute('hanging'),856 containerTagName: 'svg',857 tagName: 'font-face',858 },859 // Disabled because it crashes other tests with React 15.860 // TODO: re-enable when we no longer compare to 15.861 // {name: 'hasOwnProperty', read: getAttribute('hasOwnProperty')},862 {name: 'headers', containerTagName: 'tr', tagName: 'td'},863 {name: 'height', tagName: 'img'},864 {865 name: 'height',866 containerTagName: 'svg',867 tagName: 'rect',868 read: getSVGProperty('height'),869 overrideStringValue: '100%',870 },871 {name: 'hidden'},872 {name: 'high', tagName: 'meter'},873 {874 name: 'horiz-adv-x',875 read: getSVGAttribute('horiz-adv-x'),876 containerTagName: 'svg',877 tagName: 'font',878 },879 {880 name: 'horiz-origin-x',881 read: getSVGAttribute('horiz-origin-x'),882 containerTagName: 'svg',883 tagName: 'font',884 },885 {886 name: 'horizAdvX',887 read: getSVGAttribute('horiz-adv-x'),888 containerTagName: 'svg',889 tagName: 'font',890 },891 {892 name: 'horizOriginX',893 read: getSVGAttribute('horiz-origin-x'),894 containerTagName: 'svg',895 tagName: 'font',896 },897 {name: 'href', tagName: 'a', overrideStringValue: 'https://reactjs.com'},898 {name: 'hrefLang', read: getAttribute('hreflang')},899 {name: 'htmlFor', tagName: 'label'},900 {name: 'http-equiv', tagName: 'meta', read: getProperty('httpEquiv')},901 {name: 'httpEquiv', tagName: 'meta'},902 {name: 'icon', tagName: 'command', read: getAttribute('icon')},903 {name: 'id'},904 {name: 'ID', read: getProperty('id')},905 {906 name: 'ideographic',907 read: getSVGAttribute('ideographic'),908 containerTagName: 'svg',909 tagName: 'font-face',910 },911 {912 name: 'image-rendering',913 tagName: 'svg',914 read: getSVGAttribute('image-rendering'),915 },916 {917 name: 'imageRendering',918 tagName: 'svg',919 read: getSVGAttribute('image-rendering'),920 },921 {922 name: 'in',923 read: getSVGAttribute('in'),924 containerTagName: 'svg',925 tagName: 'feBlend',926 },927 {928 name: 'in2',929 read: getSVGProperty('in2'),930 containerTagName: 'svg',931 tagName: 'feBlend',932 },933 {name: 'initialChecked', read: getAttribute('initialchecked')},934 {name: 'initialValue', read: getAttribute('initialvalue')},935 {name: 'inlist', read: getAttribute('inlist')},936 {name: 'inputMode', tagName: 'input', read: getAttribute('inputmode')}, // TODO: Should use property but it's not implemented in Chrome937 {name: 'integrity', tagName: 'script'},938 {939 name: 'intercept',940 read: getSVGProperty('intercept'),941 containerTagName: 'svg',942 tagName: 'feFuncA',943 },944 {945 name: 'is',946 tagName: 'button',947 overrideStringValue: 'x-test-element',948 read: getAttribute('is'), // TODO: This could check if this is an extended custom element but this is a controversial spec.949 },950 {name: 'itemID', read: getAttribute('itemid')},951 {name: 'itemProp', read: getAttribute('itemprop')},952 {name: 'itemRef', read: getAttribute('itemref')},953 {name: 'itemScope', read: getAttribute('itemscope')},954 {name: 'itemType', read: getAttribute('itemtype')},955 {956 name: 'k',957 read: getSVGAttribute('k'),958 containerTagName: 'svg',959 tagName: 'hkern',960 },961 {962 name: 'K',963 containerTagName: 'svg',964 tagName: 'hkern',965 read: getSVGAttribute('k'),966 },967 {968 name: 'K1',969 containerTagName: 'svg',970 tagName: 'feComposite',971 read: getSVGProperty('k1'),972 },973 {974 name: 'k1',975 read: getSVGProperty('k1'),976 containerTagName: 'svg',977 tagName: 'feComposite',978 },979 {980 name: 'k2',981 read: getSVGProperty('k2'),982 containerTagName: 'svg',983 tagName: 'feComposite',984 },985 {986 name: 'k3',987 read: getSVGProperty('k3'),988 containerTagName: 'svg',989 tagName: 'feComposite',990 },991 {992 name: 'k4',993 read: getSVGProperty('k4'),994 containerTagName: 'svg',995 tagName: 'feComposite',996 },997 {998 name: 'kernelMatrix',999 read: getSVGProperty('kernelMatrix'),1000 containerTagName: 'svg',1001 tagName: 'feConvolveMatrix',1002 overrideStringValue: '1 2 3,4',1003 },1004 {1005 name: 'kernelUnitLength',1006 read: getSVGAttribute('kernelUnitLength'),1007 containerTagName: 'svg',1008 tagName: 'feConvolveMatrix',1009 },1010 {1011 name: 'kerning',1012 containerTagName: 'svg',1013 tagName: 'text',1014 read: getSVGAttribute('kerning'),1015 },1016 {name: 'keyParams', read: getAttribute('keyParams')},1017 {1018 name: 'keyPoints',1019 read: getSVGAttribute('keyPoints'),1020 containerTagName: 'svg',1021 tagName: 'animateMotion',1022 },1023 {1024 name: 'keySplines',1025 read: getSVGAttribute('keySplines'),1026 containerTagName: 'svg',1027 tagName: 'animate',1028 },1029 {1030 name: 'keyTimes',1031 read: getSVGAttribute('keyTimes'),1032 containerTagName: 'svg',1033 tagName: 'animate',1034 },1035 {name: 'keyType', read: getAttribute('keyType')},1036 {name: 'kind', tagName: 'track', overrideStringValue: 'captions'},1037 {name: 'label', tagName: 'track'},1038 {name: 'LANG', read: getProperty('lang')},1039 {name: 'lang'},1040 {name: 'length', read: getAttribute('length')},1041 {1042 name: 'lengthAdjust',1043 read: getSVGProperty('lengthAdjust'),1044 containerTagName: 'svg',1045 tagName: 'text',1046 overrideStringValue: 'spacingAndGlyphs',1047 },1048 {1049 name: 'letter-spacing',1050 containerTagName: 'svg',1051 tagName: 'text',1052 read: getSVGAttribute('letter-spacing'),1053 },1054 {1055 name: 'letterSpacing',1056 containerTagName: 'svg',1057 tagName: 'text',1058 read: getSVGAttribute('letter-spacing'),1059 },1060 {1061 name: 'lighting-color',1062 containerTagName: 'svg',1063 tagName: 'feDiffuseLighting',1064 read: getSVGAttribute('lighting-color'),1065 },1066 {1067 name: 'lightingColor',1068 containerTagName: 'svg',1069 tagName: 'feDiffuseLighting',1070 read: getSVGAttribute('lighting-color'),1071 },1072 {1073 name: 'limitingConeAngle',1074 read: getSVGProperty('limitingConeAngle'),1075 containerTagName: 'svg',1076 tagName: 'feSpotLight',1077 },1078 {name: 'list', read: getAttribute('list')}, // TODO: This should match the ID of a datalist element and then read property.1079 {1080 name: 'local',1081 read: getSVGAttribute('local'),1082 containerTagName: 'svg',1083 tagName: 'color-profile',1084 },1085 {name: 'loop', tagName: 'audio'},1086 {name: 'low', tagName: 'meter'},1087 {name: 'manifest', read: getAttribute('manifest')},1088 {name: 'marginHeight', containerTagName: 'frameset', tagName: 'frame'},1089 {name: 'marginWidth', containerTagName: 'frameset', tagName: 'frame'},1090 {1091 name: 'marker-end',1092 containerTagName: 'svg',1093 tagName: 'line',1094 read: getSVGAttribute('marker-end'),1095 },1096 {1097 name: 'marker-mid',1098 containerTagName: 'svg',1099 tagName: 'line',1100 read: getSVGAttribute('marker-mid'),1101 },1102 {1103 name: 'marker-start',1104 containerTagName: 'svg',1105 tagName: 'line',1106 read: getSVGAttribute('marker-start'),1107 },1108 {1109 name: 'markerEnd',1110 containerTagName: 'svg',1111 tagName: 'line',1112 read: getSVGAttribute('marker-end'),1113 },1114 {1115 name: 'markerHeight',1116 read: getSVGProperty('markerHeight'),1117 containerTagName: 'svg',1118 tagName: 'marker',1119 },1120 {1121 name: 'markerMid',1122 containerTagName: 'svg',1123 tagName: 'line',1124 read: getSVGAttribute('marker-mid'),1125 },1126 {1127 name: 'markerStart',1128 containerTagName: 'svg',1129 tagName: 'line',1130 read: getSVGAttribute('marker-start'),1131 },1132 {1133 name: 'markerUnits',1134 read: getSVGProperty('markerUnits'),1135 containerTagName: 'svg',1136 tagName: 'marker',1137 },1138 {1139 name: 'markerWidth',1140 read: getSVGProperty('markerWidth'),1141 containerTagName: 'svg',1142 tagName: 'marker',1143 },1144 {1145 name: 'mask',1146 containerTagName: 'svg',1147 tagName: 'path',1148 read: getSVGAttribute('mask'),1149 },1150 {1151 name: 'maskContentUnits',1152 read: getSVGProperty('maskContentUnits'),1153 containerTagName: 'svg',1154 tagName: 'mask',1155 overrideStringValue: 'objectBoundingBox',1156 },1157 {1158 name: 'maskUnits',1159 read: getSVGProperty('maskUnits'),1160 containerTagName: 'svg',1161 tagName: 'mask',1162 overrideStringValue: 'userSpaceOnUse',1163 },1164 {1165 name: 'mathematical',1166 read: getSVGAttribute('mathematical'),1167 containerTagName: 'svg',1168 tagName: 'font-face',1169 },1170 {name: 'max', tagName: 'input'},1171 {name: 'max', tagName: 'meter'},1172 {name: 'max', tagName: 'progress'},1173 {1174 name: 'max',1175 containerTagName: 'svg',1176 tagName: 'animate',1177 read: getSVGAttribute('max'),1178 },1179 {name: 'maxLength', tagName: 'textarea'},1180 {name: 'media', tagName: 'link'},1181 {1182 name: 'media',1183 containerTagName: 'svg',1184 tagName: 'style',1185 read: getSVGProperty('media'),1186 },1187 {name: 'mediaGroup', tagName: 'video', read: getAttribute('mediagroup')}, // TODO: Not yet implemented in Chrome.1188 {name: 'method', tagName: 'form', overrideStringValue: 'POST'},1189 {1190 name: 'method',1191 containerTagName: 'svg',1192 tagName: 'textPath',1193 read: getSVGProperty('method'),1194 overrideStringValue: 'stretch',1195 },1196 {name: 'min', tagName: 'input'},1197 {name: 'min', tagName: 'meter'},1198 {1199 name: 'min',1200 containerTagName: 'svg',1201 tagName: 'animate',1202 read: getSVGAttribute('min'),1203 },1204 {name: 'minLength', tagName: 'input'},1205 {1206 name: 'mode',1207 read: getSVGProperty('mode'),1208 containerTagName: 'svg',1209 tagName: 'feBlend',1210 overrideStringValue: 'multiply',1211 },1212 {name: 'multiple', tagName: 'select'},1213 {name: 'muted', tagName: 'video'},1214 {name: 'name', tagName: 'input'},1215 {1216 name: 'name',1217 containerTagName: 'svg',1218 tagName: 'color-profile',1219 read: getSVGAttribute('color-profile'),1220 },1221 {name: 'noModule', tagName: 'script'},1222 {name: 'nonce', read: getAttribute('nonce')},1223 {name: 'noValidate', tagName: 'form'},1224 {1225 name: 'numOctaves',1226 read: getSVGProperty('numOctaves'),1227 containerTagName: 'svg',1228 tagName: 'feTurbulence',1229 },1230 {1231 name: 'offset',1232 read: getSVGProperty('offset'),1233 containerTagName: 'svg',1234 tagName: 'stop',1235 },1236 {name: 'on-click'}, // TODO: Check for event subscriptions1237 {name: 'on-unknownevent'}, // TODO: Check for event subscriptions1238 {name: 'onclick'}, // TODO: Check for event subscriptions1239 {name: 'onClick'}, // TODO: Check for event subscriptions1240 {name: 'onunknownevent'}, // TODO: Check for event subscriptions1241 {name: 'onUnknownEvent'}, // TODO: Check for event subscriptions1242 {1243 name: 'opacity',1244 containerTagName: 'svg',1245 tagName: 'path',1246 read: getSVGAttribute('opacity'),1247 },1248 {name: 'open', tagName: 'details'},1249 {1250 name: 'operator',1251 read: getSVGProperty('operator'),1252 containerTagName: 'svg',1253 tagName: 'feComposite',1254 overrideStringValue: 'xor',1255 },1256 {name: 'optimum', tagName: 'meter'},1257 {1258 name: 'order',1259 read: getSVGAttribute('order'),1260 containerTagName: 'svg',1261 tagName: 'feConvolveMatrix',1262 },1263 {1264 name: 'orient',1265 read: getSVGAttribute('orient'),1266 containerTagName: 'svg',1267 tagName: 'marker',1268 },1269 {1270 name: 'orientation',1271 read: getSVGAttribute('orientation'),1272 containerTagName: 'svg',1273 tagName: 'glyph',1274 },1275 {1276 name: 'origin',1277 read: getSVGAttribute('origin'),1278 containerTagName: 'svg',1279 tagName: 'animateMotion',1280 },1281 {1282 name: 'overflow',1283 containerTagName: 'svg',1284 tagName: 'path',1285 read: getSVGAttribute('overflow'),1286 },1287 {1288 name: 'overline-position',1289 read: getSVGAttribute('overline-position'),1290 containerTagName: 'svg',1291 tagName: 'font-face',1292 },1293 {1294 name: 'overline-thickness',1295 read: getSVGAttribute('overline-thickness'),1296 containerTagName: 'svg',1297 tagName: 'font-face',1298 },1299 {1300 name: 'overlinePosition',1301 read: getSVGAttribute('overline-position'),1302 containerTagName: 'svg',1303 tagName: 'font-face',1304 },1305 {1306 name: 'overlineThickness',1307 read: getSVGAttribute('overline-thickness'),1308 containerTagName: 'svg',1309 tagName: 'font-face',1310 },1311 {1312 name: 'paint-order',1313 containerTagName: 'svg',1314 tagName: 'path',1315 read: getSVGAttribute('paint-order'),1316 },1317 {1318 name: 'paintOrder',1319 containerTagName: 'svg',1320 tagName: 'path',1321 read: getSVGAttribute('paint-order'),1322 },1323 {1324 name: 'panose-1',1325 read: getSVGAttribute('panose-1'),1326 containerTagName: 'svg',1327 tagName: 'font-face',1328 },1329 {1330 name: 'panose1',1331 containerTagName: 'svg',1332 tagName: 'font-face',1333 read: getSVGAttribute('panose-1'),1334 },1335 {1336 name: 'pathLength',1337 read: getSVGProperty('pathLength'),1338 containerTagName: 'svg',1339 tagName: 'path',1340 },1341 {name: 'pattern', tagName: 'input'},1342 {1343 name: 'patternContentUnits',1344 read: getSVGProperty('patternContentUnits'),1345 containerTagName: 'svg',1346 tagName: 'pattern',1347 overrideStringValue: 'objectBoundingBox',1348 },1349 {1350 name: 'patternTransform',1351 read: getSVGProperty('patternTransform'),1352 containerTagName: 'svg',1353 tagName: 'pattern',1354 overrideStringValue:1355 'translate(-10,-20) scale(2) rotate(45) translate(5,10)',1356 },1357 {1358 name: 'patternUnits',1359 read: getSVGProperty('patternUnits'),1360 containerTagName: 'svg',1361 tagName: 'pattern',1362 overrideStringValue: 'userSpaceOnUse',1363 },1364 {name: 'placeholder', tagName: 'input'},1365 {name: 'playsInline', read: getAttribute('playsinline')},1366 {1367 name: 'pointer-events',1368 containerTagName: 'svg',1369 tagName: 'path',1370 read: getSVGAttribute('pointer-events'),1371 },1372 {1373 name: 'pointerEvents',1374 containerTagName: 'svg',1375 tagName: 'path',1376 read: getSVGAttribute('pointer-events'),1377 },1378 {1379 name: 'points',1380 read: getSVGProperty('points'),1381 containerTagName: 'svg',1382 tagName: 'polygon',1383 overrideStringValue: '350,75 379,161 469,161',1384 },1385 {1386 name: 'pointsAtX',1387 read: getSVGProperty('pointsAtX'),1388 containerTagName: 'svg',1389 tagName: 'feSpotLight',1390 },1391 {1392 name: 'pointsAtY',1393 read: getSVGProperty('pointsAtY'),1394 containerTagName: 'svg',1395 tagName: 'feSpotLight',1396 },1397 {1398 name: 'pointsAtZ',1399 read: getSVGProperty('pointsAtZ'),1400 containerTagName: 'svg',1401 tagName: 'feSpotLight',1402 },1403 {1404 name: 'poster',1405 tagName: 'video',1406 overrideStringValue: 'https://reactjs.com',1407 },1408 {name: 'prefix', read: getAttribute('prefix')},1409 {name: 'preload', tagName: 'video', overrideStringValue: 'none'},1410 {1411 name: 'preserveAlpha',1412 read: getSVGProperty('preserveAlpha'),1413 containerTagName: 'svg',1414 tagName: 'feConvolveMatrix',1415 },1416 {1417 name: 'preserveAspectRatio',1418 read: getSVGProperty('preserveAspectRatio'),1419 containerTagName: 'svg',1420 tagName: 'feImage',1421 overrideStringValue: 'xMinYMin slice',1422 },1423 {1424 name: 'primitiveUnits',1425 read: getSVGProperty('primitiveUnits'),1426 containerTagName: 'svg',1427 tagName: 'filter',1428 overrideStringValue: 'objectBoundingBox',1429 },1430 {name: 'profile', read: getAttribute('profile')},1431 {name: 'property', read: getAttribute('property')},1432 {name: 'props', read: getAttribute('props')},1433 {1434 name: 'r',1435 read: getSVGProperty('r'),1436 containerTagName: 'svg',1437 tagName: 'circle',1438 overrideStringValue: '10pt',1439 },1440 {name: 'radioGroup', tagName: 'command', read: getAttribute('radiogroup')},1441 {1442 name: 'radius',1443 read: getSVGAttribute('radius'),1444 containerTagName: 'svg',1445 tagName: 'feMorphology',1446 },1447 {name: 'readOnly', tagName: 'input'},1448 {name: 'referrerPolicy', tagName: 'iframe'},1449 {1450 name: 'refX',1451 read: getSVGProperty('refX'),1452 containerTagName: 'svg',1453 tagName: 'marker',1454 overrideStringValue: '5em',1455 },1456 {1457 name: 'refY',1458 read: getSVGProperty('refY'),1459 containerTagName: 'svg',1460 tagName: 'marker',1461 overrideStringValue: '6em',1462 },1463 {name: 'rel', tagName: 'a'},1464 {1465 name: 'rendering-intent',1466 read: getSVGAttribute('rendering-intent'),1467 containerTagName: 'svg',1468 tagName: 'color-profile',1469 },1470 {1471 name: 'renderingIntent',1472 read: getSVGAttribute('rendering-intent'),1473 containerTagName: 'svg',1474 tagName: 'color-profile',1475 },1476 {1477 name: 'repeatCount',1478 read: getSVGAttribute('repeatcount'),1479 containerTagName: 'svg',1480 tagName: 'animate',1481 },1482 {1483 name: 'repeatDur',1484 read: getSVGAttribute('repeatdur'),1485 containerTagName: 'svg',1486 tagName: 'animate',1487 },1488 {name: 'required', tagName: 'input'},1489 {1490 name: 'requiredExtensions',1491 read: getSVGProperty('requiredExtensions'),1492 containerTagName: 'svg',1493 tagName: 'a',1494 },1495 {1496 name: 'requiredFeatures',1497 read: getSVGAttribute('requiredFeatures'),1498 containerTagName: 'svg',1499 tagName: 'a',1500 },1501 {name: 'resource', read: getAttribute('resource')},1502 {1503 name: 'restart',1504 read: getSVGAttribute('resource'),1505 containerTagName: 'svg',1506 tagName: 'animate',1507 },1508 {1509 name: 'result',1510 read: getSVGProperty('result'),1511 containerTagName: 'svg',1512 tagName: 'feBlend',1513 },1514 {name: 'results', tagName: 'input', read: getAttribute('results')}, // TODO: Should use property but it's not supported in Chrome.1515 {name: 'reversed', tagName: 'ol'},1516 {name: 'role', read: getAttribute('role')},1517 {1518 name: 'rotate',1519 read: getSVGAttribute('role'),1520 containerTagName: 'svg',1521 tagName: 'altGlyph',1522 },1523 {name: 'rows', tagName: 'textarea'},1524 {name: 'rowSpan', containerTagName: 'tr', tagName: 'td'},1525 {1526 name: 'rx',1527 read: getSVGProperty('rx'),1528 containerTagName: 'svg',1529 tagName: 'ellipse',1530 overrideStringValue: '1px',1531 },1532 {1533 name: 'ry',1534 read: getSVGProperty('ry'),1535 containerTagName: 'svg',1536 tagName: 'ellipse',1537 overrideStringValue: '2px',1538 },1539 {1540 name: 'sandbox',1541 tagName: 'iframe',1542 overrideStringValue: 'allow-forms allow-scripts',1543 },1544 {1545 name: 'scale',1546 read: getSVGProperty('scale'),1547 containerTagName: 'svg',1548 tagName: 'feDisplacementMap',1549 },1550 {1551 name: 'scope',1552 containerTagName: 'tr',1553 tagName: 'th',1554 overrideStringValue: 'row',1555 },1556 {name: 'scoped', tagName: 'style', read: getAttribute('scoped')},1557 {name: 'scrolling', tagName: 'iframe', overrideStringValue: 'no'},1558 {name: 'seamless', tagName: 'iframe', read: getAttribute('seamless')},1559 {name: 'security', tagName: 'iframe', read: getAttribute('security')},1560 {1561 name: 'seed',1562 read: getSVGProperty('seed'),1563 containerTagName: 'svg',1564 tagName: 'feTurbulence',1565 },1566 {name: 'selected', tagName: 'option', containerTagName: 'select'},1567 {name: 'selectedIndex', tagName: 'select'},1568 {name: 'shape', tagName: 'a'},1569 {1570 name: 'shape-rendering',1571 tagName: 'svg',1572 read: getSVGAttribute('shape-rendering'),1573 },1574 {1575 name: 'shapeRendering',1576 tagName: 'svg',1577 read: getSVGAttribute('shape-rendering'),1578 },1579 {name: 'size', tagName: 'input'},1580 {name: 'sizes', tagName: 'link'},1581 {1582 name: 'slope',1583 read: getSVGAttribute('slope'),1584 containerTagName: 'svg',1585 tagName: 'font-face',1586 },1587 {1588 name: 'spacing',1589 read: getSVGProperty('spacing'),1590 containerTagName: 'svg',1591 tagName: 'textPath',1592 overrideStringValue: 'auto',1593 },1594 {name: 'span', containerTagName: 'colgroup', tagName: 'col'},1595 {1596 name: 'specularConstant',1597 read: getSVGProperty('specularConstant'),1598 containerTagName: 'svg',1599 tagName: 'feSpecularLighting',1600 },1601 {1602 name: 'specularExponent',1603 read: getSVGProperty('specularConstant'),1604 containerTagName: 'svg',1605 tagName: 'feSpecularLighting',1606 },1607 {name: 'speed', read: getAttribute('speed')},1608 {1609 name: 'spellCheck',1610 overrideStringValue: 'false',1611 tagName: 'input',1612 read: getProperty('spellcheck'),1613 },1614 {1615 name: 'spellcheck',1616 overrideStringValue: 'false',1617 tagName: 'input',1618 read: getProperty('spellcheck'),1619 },1620 {1621 name: 'spreadMethod',1622 read: getSVGProperty('spreadMethod'),1623 containerTagName: 'svg',1624 tagName: 'linearGradient',1625 overrideStringValue: 'reflect',1626 },1627 {name: 'src', tagName: 'img', overrideStringValue: 'https://reactjs.com'},1628 {1629 name: 'srcDoc',1630 tagName: 'iframe',1631 overrideStringValue: '<p>Hi</p>',1632 read: getProperty('srcdoc'),1633 },1634 {1635 name: 'srcdoc',1636 tagName: 'iframe',1637 overrideStringValue: '<p>Hi</p>',1638 read: getProperty('srcdoc'),1639 },1640 {1641 name: 'srcLang',1642 containerTagName: 'audio',1643 tagName: 'track',1644 overrideStringValue: 'en',1645 read: getProperty('srclang'),1646 },1647 {1648 name: 'srclang',1649 containerTagName: 'audio',1650 tagName: 'track',1651 overrideStringValue: 'en',1652 read: getProperty('srclang'),1653 },1654 {name: 'srcSet', tagName: 'img'},1655 {name: 'srcset', tagName: 'img'},1656 {name: 'start', tagName: 'ol'},1657 {1658 name: 'startOffset',1659 read: getSVGProperty('startOffset'),1660 containerTagName: 'svg',1661 tagName: 'textPath',1662 },1663 {name: 'state', read: getAttribute('state')},1664 {1665 name: 'stdDeviation',1666 read: getSVGAttribute('stdDeviation'),1667 containerTagName: 'svg',1668 tagName: 'feGaussianBlur',1669 },1670 {1671 name: 'stemh',1672 read: getSVGAttribute('stemh'),1673 containerTagName: 'svg',1674 tagName: 'font-face',1675 },1676 {1677 name: 'stemv',1678 read: getSVGAttribute('stemv'),1679 containerTagName: 'svg',1680 tagName: 'font-face',1681 },1682 {name: 'step', read: getAttribute('step')},1683 {1684 name: 'stitchTiles',1685 read: getSVGProperty('stitchTiles'),1686 containerTagName: 'svg',1687 tagName: 'feTurbulence',1688 overrideStringValue: 'stitch',1689 },1690 {1691 name: 'stop-color',1692 containerTagName: 'svg',1693 tagName: 'stop',1694 read: getSVGAttribute('stop-color'),1695 },1696 {1697 name: 'stop-opacity',1698 containerTagName: 'svg',1699 tagName: 'stop',1700 read: getSVGAttribute('stop-opacity'),1701 },1702 {1703 name: 'stopColor',1704 containerTagName: 'svg',1705 tagName: 'stop',1706 read: getSVGAttribute('stop-color'),1707 },1708 {1709 name: 'stopOpacity',1710 containerTagName: 'svg',1711 tagName: 'stop',1712 read: getSVGAttribute('stop-opacity'),1713 },1714 {1715 name: 'strikethrough-position',1716 read: getSVGAttribute('strikethrough-position'),1717 containerTagName: 'svg',1718 tagName: 'font-face',1719 },1720 {1721 name: 'strikethrough-thickness',1722 read: getSVGAttribute('strikethrough-thickness'),1723 containerTagName: 'svg',1724 tagName: 'font-face',1725 },1726 {1727 name: 'strikethroughPosition',1728 read: getSVGAttribute('strikethrough-position'),1729 containerTagName: 'svg',1730 tagName: 'font-face',1731 },1732 {1733 name: 'strikethroughThickness',1734 read: getSVGAttribute('strikethrough-thickness'),1735 containerTagName: 'svg',1736 tagName: 'font-face',1737 },1738 {1739 name: 'string',1740 read: getSVGAttribute('string'),1741 containerTagName: 'svg',1742 tagName: 'font-face-format',1743 },1744 {1745 name: 'stroke',1746 containerTagName: 'svg',1747 tagName: 'path',1748 read: getSVGAttribute('stroke'),1749 },1750 {1751 name: 'stroke-dasharray',1752 containerTagName: 'svg',1753 tagName: 'path',1754 read: getSVGAttribute('stroke-dasharray'),1755 },1756 {1757 name: 'stroke-Dasharray',1758 containerTagName: 'svg',1759 tagName: 'path',1760 read: getSVGAttribute('stroke-dasharray'),1761 },1762 {1763 name: 'stroke-dashoffset',1764 containerTagName: 'svg',1765 tagName: 'path',1766 read: getSVGAttribute('stroke-dashoffset'),1767 },1768 {1769 name: 'stroke-linecap',1770 containerTagName: 'svg',1771 tagName: 'path',1772 read: getSVGAttribute('stroke-linecap'),1773 },1774 {1775 name: 'stroke-linejoin',1776 containerTagName: 'svg',1777 tagName: 'path',1778 read: getSVGAttribute('stroke-linejoin'),1779 },1780 {1781 name: 'stroke-miterlimit',1782 containerTagName: 'svg',1783 tagName: 'path',1784 read: getSVGAttribute('stroke-miterlimit'),1785 },1786 {1787 name: 'stroke-opacity',1788 containerTagName: 'svg',1789 tagName: 'path',1790 read: getSVGAttribute('stroke-opacity'),1791 },1792 {1793 name: 'stroke-width',1794 containerTagName: 'svg',1795 tagName: 'path',1796 read: getSVGAttribute('stroke-width'),1797 },1798 {1799 name: 'strokeDasharray',1800 containerTagName: 'svg',1801 tagName: 'path',1802 read: getSVGAttribute('stroke-dasharray'),1803 },1804 {1805 name: 'strokeDashoffset',1806 containerTagName: 'svg',1807 tagName: 'path',1808 read: getSVGAttribute('stroke-dashoffset'),1809 },1810 {1811 name: 'strokeLinecap',1812 containerTagName: 'svg',1813 tagName: 'path',1814 read: getSVGAttribute('stroke-linecap'),1815 },1816 {1817 name: 'strokeLinejoin',1818 containerTagName: 'svg',1819 tagName: 'path',1820 read: getSVGAttribute('stroke-linejoin'),1821 },1822 {1823 name: 'strokeMiterlimit',1824 containerTagName: 'svg',1825 tagName: 'path',1826 read: getSVGAttribute('stroke-miterlimit'),1827 },1828 {1829 name: 'strokeOpacity',1830 containerTagName: 'svg',1831 tagName: 'path',1832 read: getSVGAttribute('stroke-opacity'),1833 },1834 {1835 name: 'strokeWidth',1836 containerTagName: 'svg',1837 tagName: 'path',1838 read: getSVGAttribute('stroke-width'),1839 },1840 {name: 'style'},1841 {name: 'summary', tagName: 'table'},1842 {1843 name: 'suppressContentEditableWarning',1844 read: getAttribute('suppresscontenteditablewarning'),1845 },1846 {1847 name: 'surfaceScale',1848 read: getSVGProperty('surfaceScale'),1849 containerTagName: 'svg',1850 tagName: 'feDiffuseLighting',1851 },1852 {1853 name: 'systemLanguage',1854 overrideStringValue: 'en',1855 read: getSVGProperty('systemLanguage'),1856 containerTagName: 'svg',1857 tagName: 'a',1858 },1859 {name: 'tabIndex'},1860 {1861 name: 'tabIndex',1862 read: getSVGProperty('tabIndex'),1863 tagName: 'svg',1864 },1865 {1866 name: 'tableValues',1867 read: getSVGProperty('tableValues'),1868 containerTagName: 'svg',1869 tagName: 'feFuncA',1870 overrideStringValue: '0 1 2 3',1871 },1872 {1873 name: 'target',1874 read: getSVGProperty('target'),1875 containerTagName: 'svg',1876 tagName: 'a',1877 },1878 {1879 name: 'targetX',1880 read: getSVGProperty('targetX'),1881 containerTagName: 'svg',1882 tagName: 'feConvolveMatrix',1883 },1884 {1885 name: 'targetY',1886 read: getSVGProperty('targetY'),1887 containerTagName: 'svg',1888 tagName: 'feConvolveMatrix',1889 },1890 {1891 name: 'text-anchor',1892 containerTagName: 'svg',1893 tagName: 'text',1894 read: getSVGAttribute('text-anchor'),1895 },1896 {1897 name: 'text-decoration',1898 containerTagName: 'svg',1899 tagName: 'text',1900 read: getSVGAttribute('text-decoration'),1901 },1902 {1903 name: 'text-rendering',1904 tagName: 'svg',1905 read: getSVGAttribute('text-rendering'),1906 },1907 {1908 name: 'textAnchor',1909 containerTagName: 'svg',1910 tagName: 'text',1911 read: getSVGAttribute('text-anchor'),1912 },1913 {1914 name: 'textDecoration',1915 containerTagName: 'svg',1916 tagName: 'text',1917 read: getSVGAttribute('text-decoration'),1918 },1919 {1920 name: 'textLength',1921 read: getSVGProperty('textLength'),1922 containerTagName: 'svg',1923 tagName: 'text',1924 },1925 {1926 name: 'textRendering',1927 tagName: 'svg',1928 read: getSVGAttribute('text-rendering'),1929 },1930 {name: 'title'},1931 {1932 name: 'to',1933 read: getSVGAttribute('to'),1934 containerTagName: 'svg',1935 tagName: 'set',1936 },1937 {1938 name: 'transform',1939 read: getSVGProperty('transform'),1940 containerTagName: 'svg',1941 tagName: 'a',1942 overrideStringValue:1943 'translate(-10,-20) scale(2) rotate(45) translate(5,10)',1944 },1945 {name: 'type', tagName: 'button', overrideStringValue: 'reset'},1946 {1947 name: 'type',1948 containerTagName: 'svg',1949 tagName: 'feFuncA',1950 read: getSVGProperty('type'),1951 overrideStringValue: 'discrete',1952 },1953 {name: 'typeof', read: getAttribute('typeof')},1954 {1955 name: 'u1',1956 read: getSVGAttribute('u1'),1957 containerTagName: 'svg',1958 tagName: 'hkern',1959 },1960 {1961 name: 'u2',1962 read: getSVGAttribute('u2'),1963 containerTagName: 'svg',1964 tagName: 'hkern',1965 },1966 {1967 name: 'underline-position',1968 read: getSVGAttribute('underline-position'),1969 containerTagName: 'svg',1970 tagName: 'font-face',1971 },1972 {1973 name: 'underline-thickness',1974 read: getSVGAttribute('underline-thickness'),1975 containerTagName: 'svg',1976 tagName: 'font-face',1977 },1978 {1979 name: 'underlinePosition',1980 read: getSVGAttribute('underline-position'),1981 containerTagName: 'svg',1982 tagName: 'font-face',1983 },1984 {1985 name: 'underlineThickness',1986 read: getSVGAttribute('underline-thickness'),1987 containerTagName: 'svg',1988 tagName: 'font-face',1989 },1990 {1991 name: 'unicode',1992 read: getSVGAttribute('unicode'),1993 containerTagName: 'svg',1994 tagName: 'glyph',1995 },1996 {1997 name: 'unicode-bidi',1998 containerTagName: 'svg',1999 tagName: 'text',2000 read: getSVGAttribute('unicode-bidi'),2001 },2002 {2003 name: 'unicode-range',2004 read: getSVGAttribute('unicode-range'),2005 containerTagName: 'svg',2006 tagName: 'font-face',2007 },2008 {2009 name: 'unicodeBidi',2010 containerTagName: 'svg',2011 tagName: 'text',2012 read: getSVGAttribute('unicode-bidi'),2013 },2014 {2015 name: 'unicodeRange',2016 read: getSVGAttribute('unicode-range'),2017 containerTagName: 'svg',2018 tagName: 'font-face',2019 },2020 {2021 name: 'units-per-em',2022 read: getSVGAttribute('units-per-em'),2023 containerTagName: 'svg',2024 tagName: 'font-face',2025 },2026 {2027 name: 'unitsPerEm',2028 read: getSVGAttribute('unites-per-em'),2029 containerTagName: 'svg',2030 tagName: 'font-face',2031 },2032 {name: 'unknown', read: getAttribute('unknown')},2033 {2034 name: 'unselectable',2035 read: getAttribute('unselectable'),2036 tagName: 'span',2037 overrideStringValue: 'on',2038 },2039 {name: 'useMap', tagName: 'img'},2040 {2041 name: 'v-alphabetic',2042 read: getSVGAttribute('v-alphabetic'),2043 containerTagName: 'svg',2044 tagName: 'font-face',2045 },2046 {2047 name: 'v-hanging',2048 read: getSVGAttribute('v-hanging'),2049 containerTagName: 'svg',2050 tagName: 'font-face',2051 },2052 {2053 name: 'v-ideographic',2054 read: getSVGAttribute('v-ideographic'),2055 containerTagName: 'svg',2056 tagName: 'font-face',2057 },2058 {2059 name: 'v-mathematical',2060 read: getSVGAttribute('v-mathematical'),2061 containerTagName: 'svg',2062 tagName: 'font-face',2063 },2064 {2065 name: 'vAlphabetic',2066 read: getSVGAttribute('v-alphabetic'),2067 containerTagName: 'svg',2068 tagName: 'font-face',2069 },2070 {name: 'value', tagName: 'input', extraProps: {onChange() {}}},2071 {name: 'value', tagName: 'input', type: 'email', extraProps: {onChange() {}}},2072 {2073 name: 'value',2074 tagName: 'input',2075 type: 'number',2076 extraProps: {onChange() {}},2077 },2078 {name: 'value', tagName: 'textarea', extraProps: {onChange() {}}},2079 {2080 name: 'value',2081 containerTagName: 'select',2082 tagName: 'option',2083 extraProps: {onChange() {}},2084 },2085 {2086 name: 'Value',2087 containerTagName: 'select',2088 tagName: 'option',2089 read: getProperty('value'),2090 },2091 {2092 name: 'values',2093 read: getSVGProperty('values'),2094 containerTagName: 'svg',2095 tagName: 'feColorMatrix',2096 overrideStringValue: '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0',2097 },2098 {2099 name: 'vector-effect',2100 containerTagName: 'svg',2101 tagName: 'line',2102 read: getSVGAttribute('vector-effect'),2103 },2104 {2105 name: 'vectorEffect',2106 containerTagName: 'svg',2107 tagName: 'line',2108 read: getSVGAttribute('vector-effect'),2109 },2110 {name: 'version', containerTagName: 'document', tagName: 'html'},2111 {name: 'version', tagName: 'svg', read: getSVGAttribute('version')},2112 {2113 name: 'vert-adv-y',2114 read: getSVGAttribute('vert-origin-y'),2115 containerTagName: 'svg',2116 tagName: 'font',2117 },2118 {2119 name: 'vert-origin-x',2120 read: getSVGAttribute('vert-origin-y'),2121 containerTagName: 'svg',2122 tagName: 'font',2123 },2124 {2125 name: 'vert-origin-y',2126 read: getSVGAttribute('vert-origin-y'),2127 containerTagName: 'svg',2128 tagName: 'font',2129 },2130 {2131 name: 'vertAdvY',2132 read: getSVGAttribute('vert-adv-y'),2133 containerTagName: 'svg',2134 tagName: 'font',2135 },2136 {2137 name: 'vertOriginX',2138 read: getSVGAttribute('vert-origin-x'),2139 containerTagName: 'svg',2140 tagName: 'font',2141 },2142 {2143 name: 'vertOriginY',2144 read: getSVGAttribute('vert-origin-y'),2145 containerTagName: 'svg',2146 tagName: 'font',2147 },2148 {2149 name: 'vHanging',2150 read: getSVGAttribute('v-hanging'),2151 containerTagName: 'svg',2152 tagName: 'font-face',2153 },2154 {2155 name: 'vIdeographic',2156 read: getSVGAttribute('v-ideographic'),2157 containerTagName: 'svg',2158 tagName: 'font-face',2159 },2160 {2161 name: 'viewBox',2162 read: getSVGProperty('viewBox'),2163 containerTagName: 'svg',2164 tagName: 'marker',2165 overrideStringValue: '0 0 1500 1000',2166 },2167 {2168 name: 'viewTarget',2169 read: getSVGAttribute('viewTarget'),2170 containerTagName: 'svg',2171 tagName: 'view',2172 },2173 {name: 'visibility', read: getAttribute('visibility')},2174 {2175 name: 'visibility',2176 containerTagName: 'svg',2177 tagName: 'path',2178 read: getSVGAttribute('visibility'),2179 },2180 {2181 name: 'vMathematical',2182 read: getSVGAttribute('v-mathematical'),2183 containerTagName: 'svg',2184 tagName: 'font-face',2185 },2186 {name: 'vocab', read: getAttribute('vocab')},2187 {name: 'width', tagName: 'img'},2188 {2189 name: 'width',2190 containerTagName: 'svg',2191 tagName: 'rect',2192 read: getSVGProperty('width'),2193 },2194 {2195 name: 'widths',2196 read: getSVGAttribute('widths'),2197 containerTagName: 'svg',2198 tagName: 'font-face',2199 },2200 {name: 'wmode', read: getAttribute('wmode'), tagName: 'embed'},2201 {2202 name: 'word-spacing',2203 containerTagName: 'svg',2204 tagName: 'text',2205 read: getSVGAttribute('word-spacing'),2206 },2207 {2208 name: 'wordSpacing',2209 containerTagName: 'svg',2210 tagName: 'text',2211 read: getSVGAttribute('word-spacing'),2212 },2213 {name: 'wrap', tagName: 'textarea'},2214 {2215 name: 'writing-mode',2216 containerTagName: 'svg',2217 tagName: 'text',2218 read: getSVGAttribute('writing-mode'),2219 },2220 {2221 name: 'writingMode',2222 containerTagName: 'svg',2223 tagName: 'text',2224 read: getSVGAttribute('writing-mode'),2225 },2226 {2227 name: 'x',2228 read: getSVGAttribute('x'),2229 containerTagName: 'svg',2230 tagName: 'altGlyph',2231 },2232 {2233 name: 'x-height',2234 read: getSVGAttribute('x-height'),2235 containerTagName: 'svg',2236 tagName: 'font-face',2237 },2238 {2239 name: 'x1',2240 read: getSVGProperty('x1'),2241 containerTagName: 'svg',2242 tagName: 'line',2243 },2244 {2245 name: 'x2',2246 read: getSVGProperty('x2'),2247 containerTagName: 'svg',2248 tagName: 'line',2249 },2250 {2251 name: 'xChannelSelector',2252 read: getSVGProperty('xChannelSelector'),2253 containerTagName: 'svg',2254 tagName: 'feDisplacementMap',2255 overrideStringValue: 'R',2256 },2257 {2258 name: 'xHeight',2259 read: getSVGAttribute('x-height'),2260 containerTagName: 'svg',2261 tagName: 'font-face',2262 },2263 {name: 'XLink:Actuate', read: getAttribute('XLink:Actuate')},2264 {name: 'xlink:actuate', read: getAttribute('xlink:actuate')},2265 {name: 'xlink:arcrole', read: getAttribute('xlink:arcrole')},2266 {name: 'xlink:href', read: getAttribute('xlink:href')},2267 {name: 'xlink:role', read: getAttribute('xlink:role')},2268 {name: 'xlink:show', read: getAttribute('xlink:show')},2269 {name: 'xlink:title', read: getAttribute('xlink:title')},2270 {name: 'xlink:type', read: getAttribute('xlink:type')},2271 {name: 'xlinkActuate', read: getAttribute('xlink:actuate')},2272 {name: 'XlinkActuate', read: getAttribute('Xlink:actuate')},2273 {name: 'xlinkArcrole', read: getAttribute('xlink:arcrole')},2274 {name: 'xlinkHref', read: getAttribute('xlink:href')},2275 {name: 'xlinkRole', read: getAttribute('xlink:role')},2276 {name: 'xlinkShow', read: getAttribute('xlink:show')},2277 {name: 'xlinkTitle', read: getAttribute('xlink:title')},2278 {name: 'xlinkType', read: getAttribute('xlink:type')},2279 {name: 'xml:base', read: getAttribute('xml:base')},2280 {name: 'xml:lang', read: getAttribute('xml:lang')},2281 {name: 'xml:space', read: getAttribute('xml:space')},2282 {name: 'xmlBase', read: getAttribute('xml:base')},2283 {name: 'xmlLang', read: getAttribute('xml:lang')},2284 {name: 'xmlns', read: getProperty('namespaceURI'), tagName: 'svg'},2285 {name: 'xmlns:xlink', read: getAttribute('xmlns:xlink')},2286 {name: 'xmlnsXlink', read: getAttribute('xmlns:xlink')},2287 {name: 'xmlSpace', read: getAttribute('xml:space')},2288 {2289 name: 'y',2290 read: getSVGAttribute('y'),2291 containerTagName: 'svg',2292 tagName: 'altGlyph',2293 },2294 {2295 name: 'y1',2296 read: getSVGProperty('y1'),2297 containerTagName: 'svg',2298 tagName: 'line',2299 },2300 {2301 name: 'y2',2302 read: getSVGProperty('y2'),2303 containerTagName: 'svg',2304 tagName: 'line',2305 },2306 {2307 name: 'yChannelSelector',2308 read: getSVGProperty('yChannelSelector'),2309 containerTagName: 'svg',2310 tagName: 'feDisplacementMap',2311 overrideStringValue: 'B',2312 },2313 {2314 name: 'z',2315 read: getSVGProperty('z'),2316 containerTagName: 'svg',2317 tagName: 'fePointLight',2318 },2319 {name: 'zoomAndPan', read: getSVGProperty('zoomAndPan'), tagName: 'svg'},2320];2321attributes.forEach(attr => {2322 attr.read = attr.read || getProperty(attr.name);2323});...

Full Screen

Full Screen

rfc2251.py

Source:rfc2251.py Github

copy

Full Screen

1#2# This file is part of pyasn1-modules software.3#4# Copyright (c) 2005-2017, Ilya Etingof <etingof@gmail.com>5# License: http://pyasn1.sf.net/license.html6#7# LDAP message syntax8#9# ASN.1 source from:10# http://www.trl.ibm.com/projects/xml/xss4j/data/asn1/grammars/ldap.asn11#12# Sample captures from:13# http://wiki.wireshark.org/SampleCaptures/14#15from pyasn1.type import constraint16from pyasn1.type import namedtype17from pyasn1.type import namedval18from pyasn1.type import tag19from pyasn1.type import univ20maxInt = univ.Integer(2147483647)21class LDAPString(univ.OctetString):22 pass23class LDAPOID(univ.OctetString):24 pass25class LDAPDN(LDAPString):26 pass27class RelativeLDAPDN(LDAPString):28 pass29class AttributeType(LDAPString):30 pass31class AttributeDescription(LDAPString):32 pass33class AttributeDescriptionList(univ.SequenceOf):34 componentType = AttributeDescription()35class AttributeValue(univ.OctetString):36 pass37class AssertionValue(univ.OctetString):38 pass39class AttributeValueAssertion(univ.Sequence):40 componentType = namedtype.NamedTypes(41 namedtype.NamedType('attributeDesc', AttributeDescription()),42 namedtype.NamedType('assertionValue', AssertionValue())43 )44class Attribute(univ.Sequence):45 componentType = namedtype.NamedTypes(46 namedtype.NamedType('type', AttributeDescription()),47 namedtype.NamedType('vals', univ.SetOf(componentType=AttributeValue()))48 )49class MatchingRuleId(LDAPString):50 pass51class Control(univ.Sequence):52 componentType = namedtype.NamedTypes(53 namedtype.NamedType('controlType', LDAPOID()),54 namedtype.DefaultedNamedType('criticality', univ.Boolean('False')),55 namedtype.OptionalNamedType('controlValue', univ.OctetString())56 )57class Controls(univ.SequenceOf):58 componentType = Control()59class LDAPURL(LDAPString):60 pass61class Referral(univ.SequenceOf):62 componentType = LDAPURL()63class SaslCredentials(univ.Sequence):64 componentType = namedtype.NamedTypes(65 namedtype.NamedType('mechanism', LDAPString()),66 namedtype.OptionalNamedType('credentials', univ.OctetString())67 )68class AuthenticationChoice(univ.Choice):69 componentType = namedtype.NamedTypes(70 namedtype.NamedType('simple', univ.OctetString().subtype(71 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),72 namedtype.NamedType('reserved-1', univ.OctetString().subtype(73 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),74 namedtype.NamedType('reserved-2', univ.OctetString().subtype(75 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),76 namedtype.NamedType('sasl',77 SaslCredentials().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3)))78 )79class BindRequest(univ.Sequence):80 tagSet = univ.Sequence.tagSet.tagImplicitly(81 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 0)82 )83 componentType = namedtype.NamedTypes(84 namedtype.NamedType('version', univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(1, 127))),85 namedtype.NamedType('name', LDAPDN()),86 namedtype.NamedType('authentication', AuthenticationChoice())87 )88class PartialAttributeList(univ.SequenceOf):89 componentType = univ.Sequence(90 componentType=namedtype.NamedTypes(91 namedtype.NamedType('type', AttributeDescription()),92 namedtype.NamedType('vals', univ.SetOf(componentType=AttributeValue()))93 )94 )95class SearchResultEntry(univ.Sequence):96 tagSet = univ.Sequence.tagSet.tagImplicitly(97 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 4)98 )99 componentType = namedtype.NamedTypes(100 namedtype.NamedType('objectName', LDAPDN()),101 namedtype.NamedType('attributes', PartialAttributeList())102 )103class MatchingRuleAssertion(univ.Sequence):104 componentType = namedtype.NamedTypes(105 namedtype.OptionalNamedType('matchingRule', MatchingRuleId().subtype(106 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))),107 namedtype.OptionalNamedType('type', AttributeDescription().subtype(108 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))),109 namedtype.NamedType('matchValue',110 AssertionValue().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 3))),111 namedtype.DefaultedNamedType('dnAttributes', univ.Boolean('False').subtype(112 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 4)))113 )114class SubstringFilter(univ.Sequence):115 componentType = namedtype.NamedTypes(116 namedtype.NamedType('type', AttributeDescription()),117 namedtype.NamedType('substrings',118 univ.SequenceOf(119 componentType=univ.Choice(120 componentType=namedtype.NamedTypes(121 namedtype.NamedType(122 'initial', LDAPString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))123 ),124 namedtype.NamedType(125 'any', LDAPString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1))126 ),127 namedtype.NamedType(128 'final', LDAPString().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 2))129 )130 )131 )132 )133 )134 )135# Ugly hack to handle recursive Filter reference (up to 3-levels deep).136class Filter3(univ.Choice):137 componentType = namedtype.NamedTypes(138 namedtype.NamedType('equalityMatch', AttributeValueAssertion().subtype(139 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3))),140 namedtype.NamedType('substrings', SubstringFilter().subtype(141 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 4))),142 namedtype.NamedType('greaterOrEqual', AttributeValueAssertion().subtype(143 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5))),144 namedtype.NamedType('lessOrEqual', AttributeValueAssertion().subtype(145 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 6))),146 namedtype.NamedType('present', AttributeDescription().subtype(147 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),148 namedtype.NamedType('approxMatch', AttributeValueAssertion().subtype(149 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 8))),150 namedtype.NamedType('extensibleMatch', MatchingRuleAssertion().subtype(151 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 9)))152 )153class Filter2(univ.Choice):154 componentType = namedtype.NamedTypes(155 namedtype.NamedType('and', univ.SetOf(componentType=Filter3()).subtype(156 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),157 namedtype.NamedType('or', univ.SetOf(componentType=Filter3()).subtype(158 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))),159 namedtype.NamedType('not',160 Filter3().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2))),161 namedtype.NamedType('equalityMatch', AttributeValueAssertion().subtype(162 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3))),163 namedtype.NamedType('substrings', SubstringFilter().subtype(164 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 4))),165 namedtype.NamedType('greaterOrEqual', AttributeValueAssertion().subtype(166 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5))),167 namedtype.NamedType('lessOrEqual', AttributeValueAssertion().subtype(168 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 6))),169 namedtype.NamedType('present', AttributeDescription().subtype(170 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),171 namedtype.NamedType('approxMatch', AttributeValueAssertion().subtype(172 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 8))),173 namedtype.NamedType('extensibleMatch', MatchingRuleAssertion().subtype(174 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 9)))175 )176class Filter(univ.Choice):177 componentType = namedtype.NamedTypes(178 namedtype.NamedType('and', univ.SetOf(componentType=Filter2()).subtype(179 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0))),180 namedtype.NamedType('or', univ.SetOf(componentType=Filter2()).subtype(181 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 1))),182 namedtype.NamedType('not',183 Filter2().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 2))),184 namedtype.NamedType('equalityMatch', AttributeValueAssertion().subtype(185 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3))),186 namedtype.NamedType('substrings', SubstringFilter().subtype(187 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 4))),188 namedtype.NamedType('greaterOrEqual', AttributeValueAssertion().subtype(189 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 5))),190 namedtype.NamedType('lessOrEqual', AttributeValueAssertion().subtype(191 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 6))),192 namedtype.NamedType('present', AttributeDescription().subtype(193 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 7))),194 namedtype.NamedType('approxMatch', AttributeValueAssertion().subtype(195 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 8))),196 namedtype.NamedType('extensibleMatch', MatchingRuleAssertion().subtype(197 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 9)))198 )199# End of Filter hack200class SearchRequest(univ.Sequence):201 tagSet = univ.Sequence.tagSet.tagImplicitly(202 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 3)203 )204 componentType = namedtype.NamedTypes(205 namedtype.NamedType('baseObject', LDAPDN()),206 namedtype.NamedType('scope', univ.Enumerated(207 namedValues=namedval.NamedValues(('baseObject', 0), ('singleLevel', 1), ('wholeSubtree', 2)))),208 namedtype.NamedType('derefAliases', univ.Enumerated(209 namedValues=namedval.NamedValues(('neverDerefAliases', 0), ('derefInSearching', 1),210 ('derefFindingBaseObj', 2), ('derefAlways', 3)))),211 namedtype.NamedType('sizeLimit',212 univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, maxInt))),213 namedtype.NamedType('timeLimit',214 univ.Integer().subtype(subtypeSpec=constraint.ValueRangeConstraint(0, maxInt))),215 namedtype.NamedType('typesOnly', univ.Boolean()),216 namedtype.NamedType('filter', Filter()),217 namedtype.NamedType('attributes', AttributeDescriptionList())218 )219class UnbindRequest(univ.Null):220 tagSet = univ.Sequence.tagSet.tagImplicitly(221 tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 2)222 )223class BindResponse(univ.Sequence):224 tagSet = univ.Sequence.tagSet.tagImplicitly(225 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 1)226 )227 componentType = namedtype.NamedTypes(228 namedtype.NamedType('resultCode', univ.Enumerated(229 namedValues=namedval.NamedValues(('success', 0), ('operationsError', 1), ('protocolError', 2),230 ('timeLimitExceeded', 3), ('sizeLimitExceeded', 4), ('compareFalse', 5),231 ('compareTrue', 6), ('authMethodNotSupported', 7),232 ('strongAuthRequired', 8), ('reserved-9', 9), ('referral', 10),233 ('adminLimitExceeded', 11), ('unavailableCriticalExtension', 12),234 ('confidentialityRequired', 13), ('saslBindInProgress', 14),235 ('noSuchAttribute', 16), ('undefinedAttributeType', 17),236 ('inappropriateMatching', 18), ('constraintViolation', 19),237 ('attributeOrValueExists', 20), ('invalidAttributeSyntax', 21),238 ('noSuchObject', 32), ('aliasProblem', 33), ('invalidDNSyntax', 34),239 ('reserved-35', 35), ('aliasDereferencingProblem', 36),240 ('inappropriateAuthentication', 48), ('invalidCredentials', 49),241 ('insufficientAccessRights', 50), ('busy', 51), ('unavailable', 52),242 ('unwillingToPerform', 53), ('loopDetect', 54), ('namingViolation', 64),243 ('objectClassViolation', 65), ('notAllowedOnNonLeaf', 66),244 ('notAllowedOnRDN', 67), ('entryAlreadyExists', 68),245 ('objectClassModsProhibited', 69), ('reserved-70', 70),246 ('affectsMultipleDSAs', 71), ('other', 80), ('reserved-81', 81),247 ('reserved-82', 82), ('reserved-83', 83), ('reserved-84', 84),248 ('reserved-85', 85), ('reserved-86', 86), ('reserved-87', 87),249 ('reserved-88', 88), ('reserved-89', 89), ('reserved-90', 90)))),250 namedtype.NamedType('matchedDN', LDAPDN()),251 namedtype.NamedType('errorMessage', LDAPString()),252 namedtype.OptionalNamedType('referral', Referral().subtype(253 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3))),254 namedtype.OptionalNamedType('serverSaslCreds', univ.OctetString().subtype(255 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 7)))256 )257class LDAPResult(univ.Sequence):258 componentType = namedtype.NamedTypes(259 namedtype.NamedType('resultCode', univ.Enumerated(260 namedValues=namedval.NamedValues(('success', 0), ('operationsError', 1), ('protocolError', 2),261 ('timeLimitExceeded', 3), ('sizeLimitExceeded', 4), ('compareFalse', 5),262 ('compareTrue', 6), ('authMethodNotSupported', 7),263 ('strongAuthRequired', 8), ('reserved-9', 9), ('referral', 10),264 ('adminLimitExceeded', 11), ('unavailableCriticalExtension', 12),265 ('confidentialityRequired', 13), ('saslBindInProgress', 14),266 ('noSuchAttribute', 16), ('undefinedAttributeType', 17),267 ('inappropriateMatching', 18), ('constraintViolation', 19),268 ('attributeOrValueExists', 20), ('invalidAttributeSyntax', 21),269 ('noSuchObject', 32), ('aliasProblem', 33), ('invalidDNSyntax', 34),270 ('reserved-35', 35), ('aliasDereferencingProblem', 36),271 ('inappropriateAuthentication', 48), ('invalidCredentials', 49),272 ('insufficientAccessRights', 50), ('busy', 51), ('unavailable', 52),273 ('unwillingToPerform', 53), ('loopDetect', 54), ('namingViolation', 64),274 ('objectClassViolation', 65), ('notAllowedOnNonLeaf', 66),275 ('notAllowedOnRDN', 67), ('entryAlreadyExists', 68),276 ('objectClassModsProhibited', 69), ('reserved-70', 70),277 ('affectsMultipleDSAs', 71), ('other', 80), ('reserved-81', 81),278 ('reserved-82', 82), ('reserved-83', 83), ('reserved-84', 84),279 ('reserved-85', 85), ('reserved-86', 86), ('reserved-87', 87),280 ('reserved-88', 88), ('reserved-89', 89), ('reserved-90', 90)))),281 namedtype.NamedType('matchedDN', LDAPDN()),282 namedtype.NamedType('errorMessage', LDAPString()),283 namedtype.OptionalNamedType('referral', Referral().subtype(284 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3)))285 )286class SearchResultReference(univ.SequenceOf):287 tagSet = univ.Sequence.tagSet.tagImplicitly(288 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 19)289 )290 componentType = LDAPURL()291class SearchResultDone(LDAPResult):292 tagSet = univ.Sequence.tagSet.tagImplicitly(293 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 5)294 )295class AttributeTypeAndValues(univ.Sequence):296 componentType = namedtype.NamedTypes(297 namedtype.NamedType('type', AttributeDescription()),298 namedtype.NamedType('vals', univ.SetOf(componentType=AttributeValue()))299 )300class ModifyRequest(univ.Sequence):301 tagSet = univ.Sequence.tagSet.tagImplicitly(302 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 6)303 )304 componentType = namedtype.NamedTypes(305 namedtype.NamedType('object', LDAPDN()),306 namedtype.NamedType('modification',307 univ.SequenceOf(308 componentType=univ.Sequence(309 componentType=namedtype.NamedTypes(310 namedtype.NamedType(311 'operation', univ.Enumerated(namedValues=namedval.NamedValues(('add', 0), ('delete', 1), ('replace', 2)))312 ),313 namedtype.NamedType('modification', AttributeTypeAndValues())))314 )315 )316 )317class ModifyResponse(LDAPResult):318 tagSet = univ.Sequence.tagSet.tagImplicitly(319 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 7)320 )321class AttributeList(univ.SequenceOf):322 componentType = univ.Sequence(323 componentType=namedtype.NamedTypes(324 namedtype.NamedType('type', AttributeDescription()),325 namedtype.NamedType('vals', univ.SetOf(componentType=AttributeValue()))326 )327 )328class AddRequest(univ.Sequence):329 tagSet = univ.Sequence.tagSet.tagImplicitly(330 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 8)331 )332 componentType = namedtype.NamedTypes(333 namedtype.NamedType('entry', LDAPDN()),334 namedtype.NamedType('attributes', AttributeList())335 )336class AddResponse(LDAPResult):337 tagSet = univ.Sequence.tagSet.tagImplicitly(338 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 9)339 )340class DelRequest(LDAPResult):341 tagSet = univ.Sequence.tagSet.tagImplicitly(342 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 10)343 )344class DelResponse(LDAPResult):345 tagSet = univ.Sequence.tagSet.tagImplicitly(346 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 11)347 )348class ModifyDNRequest(univ.Sequence):349 tagSet = univ.Sequence.tagSet.tagImplicitly(350 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 12)351 )352 componentType = namedtype.NamedTypes(353 namedtype.NamedType('entry', LDAPDN()),354 namedtype.NamedType('newrdn', RelativeLDAPDN()),355 namedtype.NamedType('deleteoldrdn', univ.Boolean()),356 namedtype.OptionalNamedType('newSuperior',357 LDAPDN().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0)))358 )359class ModifyDNResponse(LDAPResult):360 tagSet = univ.Sequence.tagSet.tagImplicitly(361 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 13)362 )363class CompareRequest(univ.Sequence):364 tagSet = univ.Sequence.tagSet.tagImplicitly(365 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 14)366 )367 componentType = namedtype.NamedTypes(368 namedtype.NamedType('entry', LDAPDN()),369 namedtype.NamedType('ava', AttributeValueAssertion())370 )371class CompareResponse(LDAPResult):372 tagSet = univ.Sequence.tagSet.tagImplicitly(373 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 15)374 )375class AbandonRequest(LDAPResult):376 tagSet = univ.Sequence.tagSet.tagImplicitly(377 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 16)378 )379class ExtendedRequest(univ.Sequence):380 tagSet = univ.Sequence.tagSet.tagImplicitly(381 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 23)382 )383 componentType = namedtype.NamedTypes(384 namedtype.NamedType('requestName',385 LDAPOID().subtype(implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 0))),386 namedtype.OptionalNamedType('requestValue', univ.OctetString().subtype(387 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 1)))388 )389class ExtendedResponse(univ.Sequence):390 tagSet = univ.Sequence.tagSet.tagImplicitly(391 tag.Tag(tag.tagClassApplication, tag.tagFormatConstructed, 24)392 )393 componentType = namedtype.NamedTypes(394 namedtype.NamedType('resultCode', univ.Enumerated(395 namedValues=namedval.NamedValues(('success', 0), ('operationsError', 1), ('protocolError', 2),396 ('timeLimitExceeded', 3), ('sizeLimitExceeded', 4), ('compareFalse', 5),397 ('compareTrue', 6), ('authMethodNotSupported', 7),398 ('strongAuthRequired', 8), ('reserved-9', 9), ('referral', 10),399 ('adminLimitExceeded', 11), ('unavailableCriticalExtension', 12),400 ('confidentialityRequired', 13), ('saslBindInProgress', 14),401 ('noSuchAttribute', 16), ('undefinedAttributeType', 17),402 ('inappropriateMatching', 18), ('constraintViolation', 19),403 ('attributeOrValueExists', 20), ('invalidAttributeSyntax', 21),404 ('noSuchObject', 32), ('aliasProblem', 33), ('invalidDNSyntax', 34),405 ('reserved-35', 35), ('aliasDereferencingProblem', 36),406 ('inappropriateAuthentication', 48), ('invalidCredentials', 49),407 ('insufficientAccessRights', 50), ('busy', 51), ('unavailable', 52),408 ('unwillingToPerform', 53), ('loopDetect', 54), ('namingViolation', 64),409 ('objectClassViolation', 65), ('notAllowedOnNonLeaf', 66),410 ('notAllowedOnRDN', 67), ('entryAlreadyExists', 68),411 ('objectClassModsProhibited', 69), ('reserved-70', 70),412 ('affectsMultipleDSAs', 71), ('other', 80), ('reserved-81', 81),413 ('reserved-82', 82), ('reserved-83', 83), ('reserved-84', 84),414 ('reserved-85', 85), ('reserved-86', 86), ('reserved-87', 87),415 ('reserved-88', 88), ('reserved-89', 89), ('reserved-90', 90)))),416 namedtype.NamedType('matchedDN', LDAPDN()),417 namedtype.NamedType('errorMessage', LDAPString()),418 namedtype.OptionalNamedType('referral', Referral().subtype(419 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 3))),420 namedtype.OptionalNamedType('responseName', LDAPOID().subtype(421 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 10))),422 namedtype.OptionalNamedType('response', univ.OctetString().subtype(423 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatSimple, 11)))424 )425class MessageID(univ.Integer):426 subtypeSpec = univ.Integer.subtypeSpec + constraint.ValueRangeConstraint(427 0, maxInt428 )429class LDAPMessage(univ.Sequence):430 componentType = namedtype.NamedTypes(431 namedtype.NamedType('messageID', MessageID()),432 namedtype.NamedType(433 'protocolOp', univ.Choice(434 componentType=namedtype.NamedTypes(435 namedtype.NamedType('bindRequest', BindRequest()),436 namedtype.NamedType('bindResponse', BindResponse()),437 namedtype.NamedType('unbindRequest', UnbindRequest()),438 namedtype.NamedType('searchRequest', SearchRequest()),439 namedtype.NamedType('searchResEntry', SearchResultEntry()),440 namedtype.NamedType('searchResDone', SearchResultDone()),441 namedtype.NamedType('searchResRef', SearchResultReference()),442 namedtype.NamedType('modifyRequest', ModifyRequest()),443 namedtype.NamedType('modifyResponse', ModifyResponse()),444 namedtype.NamedType('addRequest', AddRequest()),445 namedtype.NamedType('addResponse', AddResponse()),446 namedtype.NamedType('delRequest', DelRequest()),447 namedtype.NamedType('delResponse', DelResponse()),448 namedtype.NamedType('modDNRequest', ModifyDNRequest()),449 namedtype.NamedType('modDNResponse', ModifyDNResponse()),450 namedtype.NamedType('compareRequest', CompareRequest()),451 namedtype.NamedType('compareResponse', CompareResponse()),452 namedtype.NamedType('abandonRequest', AbandonRequest()),453 namedtype.NamedType('extendedReq', ExtendedRequest()),454 namedtype.NamedType('extendedResp', ExtendedResponse())455 )456 )457 ),458 namedtype.OptionalNamedType('controls', Controls().subtype(459 implicitTag=tag.Tag(tag.tagClassContext, tag.tagFormatConstructed, 0)))...

Full Screen

Full Screen

tagname.js

Source:tagname.js Github

copy

Full Screen

1// Copyright 2007 The Closure Library Authors. All Rights Reserved.2//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 at6//7// http://www.apache.org/licenses/LICENSE-2.08//9// Unless required by applicable law or agreed to in writing, software10// 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 and13// limitations under the License.14/**15 * @fileoverview Defines the goog.dom.TagName class. Its constants enumerate16 * all HTML tag names specified in either the the W3C HTML 4.01 index of17 * elements or the HTML5 draft specification.18 *19 * References:20 * http://www.w3.org/TR/html401/index/elements.html21 * http://dev.w3.org/html5/spec/section-index.html22 */23goog.provide('goog.dom.TagName');24goog.require('goog.dom.HtmlElement');25/**26 * A tag name with the type of the element stored in the generic.27 * @param {string} tagName28 * @constructor29 * @template T30 */31goog.dom.TagName = function(tagName) {32 /** @private {string} */33 this.tagName_ = tagName;34};35/**36 * Returns the tag name.37 * @return {string}38 * @override39 */40goog.dom.TagName.prototype.toString = function() {41 return this.tagName_;42};43// Closure Compiler unconditionally converts the following constants to their44// string value (goog.dom.TagName.A -> 'A'). These are the consequences:45// 1. Don't add any members or static members to goog.dom.TagName as they46// couldn't be accessed after this optimization.47// 2. Keep the constant name and its string value the same:48// goog.dom.TagName.X = new goog.dom.TagName('Y');49// is converted to 'X', not 'Y'.50/** @type {!goog.dom.TagName<!HTMLAnchorElement>} */51goog.dom.TagName.A = new goog.dom.TagName('A');52/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */53goog.dom.TagName.ABBR = new goog.dom.TagName('ABBR');54/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */55goog.dom.TagName.ACRONYM = new goog.dom.TagName('ACRONYM');56/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */57goog.dom.TagName.ADDRESS = new goog.dom.TagName('ADDRESS');58/** @type {!goog.dom.TagName<!HTMLAppletElement>} */59goog.dom.TagName.APPLET = new goog.dom.TagName('APPLET');60/** @type {!goog.dom.TagName<!HTMLAreaElement>} */61goog.dom.TagName.AREA = new goog.dom.TagName('AREA');62/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */63goog.dom.TagName.ARTICLE = new goog.dom.TagName('ARTICLE');64/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */65goog.dom.TagName.ASIDE = new goog.dom.TagName('ASIDE');66/** @type {!goog.dom.TagName<!HTMLAudioElement>} */67goog.dom.TagName.AUDIO = new goog.dom.TagName('AUDIO');68/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */69goog.dom.TagName.B = new goog.dom.TagName('B');70/** @type {!goog.dom.TagName<!HTMLBaseElement>} */71goog.dom.TagName.BASE = new goog.dom.TagName('BASE');72/** @type {!goog.dom.TagName<!HTMLBaseFontElement>} */73goog.dom.TagName.BASEFONT = new goog.dom.TagName('BASEFONT');74/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */75goog.dom.TagName.BDI = new goog.dom.TagName('BDI');76/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */77goog.dom.TagName.BDO = new goog.dom.TagName('BDO');78/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */79goog.dom.TagName.BIG = new goog.dom.TagName('BIG');80/** @type {!goog.dom.TagName<!HTMLQuoteElement>} */81goog.dom.TagName.BLOCKQUOTE = new goog.dom.TagName('BLOCKQUOTE');82/** @type {!goog.dom.TagName<!HTMLBodyElement>} */83goog.dom.TagName.BODY = new goog.dom.TagName('BODY');84/** @type {!goog.dom.TagName<!HTMLBRElement>} */85goog.dom.TagName.BR = new goog.dom.TagName('BR');86/** @type {!goog.dom.TagName<!HTMLButtonElement>} */87goog.dom.TagName.BUTTON = new goog.dom.TagName('BUTTON');88/** @type {!goog.dom.TagName<!HTMLCanvasElement>} */89goog.dom.TagName.CANVAS = new goog.dom.TagName('CANVAS');90/** @type {!goog.dom.TagName<!HTMLTableCaptionElement>} */91goog.dom.TagName.CAPTION = new goog.dom.TagName('CAPTION');92/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */93goog.dom.TagName.CENTER = new goog.dom.TagName('CENTER');94/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */95goog.dom.TagName.CITE = new goog.dom.TagName('CITE');96/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */97goog.dom.TagName.CODE = new goog.dom.TagName('CODE');98/** @type {!goog.dom.TagName<!HTMLTableColElement>} */99goog.dom.TagName.COL = new goog.dom.TagName('COL');100/** @type {!goog.dom.TagName<!HTMLTableColElement>} */101goog.dom.TagName.COLGROUP = new goog.dom.TagName('COLGROUP');102/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */103goog.dom.TagName.COMMAND = new goog.dom.TagName('COMMAND');104/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */105goog.dom.TagName.DATA = new goog.dom.TagName('DATA');106/** @type {!goog.dom.TagName<!HTMLDataListElement>} */107goog.dom.TagName.DATALIST = new goog.dom.TagName('DATALIST');108/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */109goog.dom.TagName.DD = new goog.dom.TagName('DD');110/** @type {!goog.dom.TagName<!HTMLModElement>} */111goog.dom.TagName.DEL = new goog.dom.TagName('DEL');112/** @type {!goog.dom.TagName<!HTMLDetailsElement>} */113goog.dom.TagName.DETAILS = new goog.dom.TagName('DETAILS');114/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */115goog.dom.TagName.DFN = new goog.dom.TagName('DFN');116/** @type {!goog.dom.TagName<!HTMLDialogElement>} */117goog.dom.TagName.DIALOG = new goog.dom.TagName('DIALOG');118/** @type {!goog.dom.TagName<!HTMLDirectoryElement>} */119goog.dom.TagName.DIR = new goog.dom.TagName('DIR');120/** @type {!goog.dom.TagName<!HTMLDivElement>} */121goog.dom.TagName.DIV = new goog.dom.TagName('DIV');122/** @type {!goog.dom.TagName<!HTMLDListElement>} */123goog.dom.TagName.DL = new goog.dom.TagName('DL');124/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */125goog.dom.TagName.DT = new goog.dom.TagName('DT');126/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */127goog.dom.TagName.EM = new goog.dom.TagName('EM');128/** @type {!goog.dom.TagName<!HTMLEmbedElement>} */129goog.dom.TagName.EMBED = new goog.dom.TagName('EMBED');130/** @type {!goog.dom.TagName<!HTMLFieldSetElement>} */131goog.dom.TagName.FIELDSET = new goog.dom.TagName('FIELDSET');132/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */133goog.dom.TagName.FIGCAPTION = new goog.dom.TagName('FIGCAPTION');134/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */135goog.dom.TagName.FIGURE = new goog.dom.TagName('FIGURE');136/** @type {!goog.dom.TagName<!HTMLFontElement>} */137goog.dom.TagName.FONT = new goog.dom.TagName('FONT');138/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */139goog.dom.TagName.FOOTER = new goog.dom.TagName('FOOTER');140/** @type {!goog.dom.TagName<!HTMLFormElement>} */141goog.dom.TagName.FORM = new goog.dom.TagName('FORM');142/** @type {!goog.dom.TagName<!HTMLFrameElement>} */143goog.dom.TagName.FRAME = new goog.dom.TagName('FRAME');144/** @type {!goog.dom.TagName<!HTMLFrameSetElement>} */145goog.dom.TagName.FRAMESET = new goog.dom.TagName('FRAMESET');146/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */147goog.dom.TagName.H1 = new goog.dom.TagName('H1');148/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */149goog.dom.TagName.H2 = new goog.dom.TagName('H2');150/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */151goog.dom.TagName.H3 = new goog.dom.TagName('H3');152/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */153goog.dom.TagName.H4 = new goog.dom.TagName('H4');154/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */155goog.dom.TagName.H5 = new goog.dom.TagName('H5');156/** @type {!goog.dom.TagName<!HTMLHeadingElement>} */157goog.dom.TagName.H6 = new goog.dom.TagName('H6');158/** @type {!goog.dom.TagName<!HTMLHeadElement>} */159goog.dom.TagName.HEAD = new goog.dom.TagName('HEAD');160/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */161goog.dom.TagName.HEADER = new goog.dom.TagName('HEADER');162/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */163goog.dom.TagName.HGROUP = new goog.dom.TagName('HGROUP');164/** @type {!goog.dom.TagName<!HTMLHRElement>} */165goog.dom.TagName.HR = new goog.dom.TagName('HR');166/** @type {!goog.dom.TagName<!HTMLHtmlElement>} */167goog.dom.TagName.HTML = new goog.dom.TagName('HTML');168/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */169goog.dom.TagName.I = new goog.dom.TagName('I');170/** @type {!goog.dom.TagName<!HTMLIFrameElement>} */171goog.dom.TagName.IFRAME = new goog.dom.TagName('IFRAME');172/** @type {!goog.dom.TagName<!HTMLImageElement>} */173goog.dom.TagName.IMG = new goog.dom.TagName('IMG');174/** @type {!goog.dom.TagName<!HTMLInputElement>} */175goog.dom.TagName.INPUT = new goog.dom.TagName('INPUT');176/** @type {!goog.dom.TagName<!HTMLModElement>} */177goog.dom.TagName.INS = new goog.dom.TagName('INS');178/** @type {!goog.dom.TagName<!HTMLIsIndexElement>} */179goog.dom.TagName.ISINDEX = new goog.dom.TagName('ISINDEX');180/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */181goog.dom.TagName.KBD = new goog.dom.TagName('KBD');182// HTMLKeygenElement is deprecated.183/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */184goog.dom.TagName.KEYGEN = new goog.dom.TagName('KEYGEN');185/** @type {!goog.dom.TagName<!HTMLLabelElement>} */186goog.dom.TagName.LABEL = new goog.dom.TagName('LABEL');187/** @type {!goog.dom.TagName<!HTMLLegendElement>} */188goog.dom.TagName.LEGEND = new goog.dom.TagName('LEGEND');189/** @type {!goog.dom.TagName<!HTMLLIElement>} */190goog.dom.TagName.LI = new goog.dom.TagName('LI');191/** @type {!goog.dom.TagName<!HTMLLinkElement>} */192goog.dom.TagName.LINK = new goog.dom.TagName('LINK');193/** @type {!goog.dom.TagName<!HTMLMapElement>} */194goog.dom.TagName.MAP = new goog.dom.TagName('MAP');195/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */196goog.dom.TagName.MARK = new goog.dom.TagName('MARK');197/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */198goog.dom.TagName.MATH = new goog.dom.TagName('MATH');199/** @type {!goog.dom.TagName<!HTMLMenuElement>} */200goog.dom.TagName.MENU = new goog.dom.TagName('MENU');201/** @type {!goog.dom.TagName<!HTMLMetaElement>} */202goog.dom.TagName.META = new goog.dom.TagName('META');203/** @type {!goog.dom.TagName<!HTMLMeterElement>} */204goog.dom.TagName.METER = new goog.dom.TagName('METER');205/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */206goog.dom.TagName.NAV = new goog.dom.TagName('NAV');207/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */208goog.dom.TagName.NOFRAMES = new goog.dom.TagName('NOFRAMES');209/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */210goog.dom.TagName.NOSCRIPT = new goog.dom.TagName('NOSCRIPT');211/** @type {!goog.dom.TagName<!HTMLObjectElement>} */212goog.dom.TagName.OBJECT = new goog.dom.TagName('OBJECT');213/** @type {!goog.dom.TagName<!HTMLOListElement>} */214goog.dom.TagName.OL = new goog.dom.TagName('OL');215/** @type {!goog.dom.TagName<!HTMLOptGroupElement>} */216goog.dom.TagName.OPTGROUP = new goog.dom.TagName('OPTGROUP');217/** @type {!goog.dom.TagName<!HTMLOptionElement>} */218goog.dom.TagName.OPTION = new goog.dom.TagName('OPTION');219/** @type {!goog.dom.TagName<!HTMLOutputElement>} */220goog.dom.TagName.OUTPUT = new goog.dom.TagName('OUTPUT');221/** @type {!goog.dom.TagName<!HTMLParagraphElement>} */222goog.dom.TagName.P = new goog.dom.TagName('P');223/** @type {!goog.dom.TagName<!HTMLParamElement>} */224goog.dom.TagName.PARAM = new goog.dom.TagName('PARAM');225/** @type {!goog.dom.TagName<!HTMLPreElement>} */226goog.dom.TagName.PRE = new goog.dom.TagName('PRE');227/** @type {!goog.dom.TagName<!HTMLProgressElement>} */228goog.dom.TagName.PROGRESS = new goog.dom.TagName('PROGRESS');229/** @type {!goog.dom.TagName<!HTMLQuoteElement>} */230goog.dom.TagName.Q = new goog.dom.TagName('Q');231/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */232goog.dom.TagName.RP = new goog.dom.TagName('RP');233/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */234goog.dom.TagName.RT = new goog.dom.TagName('RT');235/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */236goog.dom.TagName.RUBY = new goog.dom.TagName('RUBY');237/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */238goog.dom.TagName.S = new goog.dom.TagName('S');239/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */240goog.dom.TagName.SAMP = new goog.dom.TagName('SAMP');241/** @type {!goog.dom.TagName<!HTMLScriptElement>} */242goog.dom.TagName.SCRIPT = new goog.dom.TagName('SCRIPT');243/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */244goog.dom.TagName.SECTION = new goog.dom.TagName('SECTION');245/** @type {!goog.dom.TagName<!HTMLSelectElement>} */246goog.dom.TagName.SELECT = new goog.dom.TagName('SELECT');247/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */248goog.dom.TagName.SMALL = new goog.dom.TagName('SMALL');249/** @type {!goog.dom.TagName<!HTMLSourceElement>} */250goog.dom.TagName.SOURCE = new goog.dom.TagName('SOURCE');251/** @type {!goog.dom.TagName<!HTMLSpanElement>} */252goog.dom.TagName.SPAN = new goog.dom.TagName('SPAN');253/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */254goog.dom.TagName.STRIKE = new goog.dom.TagName('STRIKE');255/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */256goog.dom.TagName.STRONG = new goog.dom.TagName('STRONG');257/** @type {!goog.dom.TagName<!HTMLStyleElement>} */258goog.dom.TagName.STYLE = new goog.dom.TagName('STYLE');259/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */260goog.dom.TagName.SUB = new goog.dom.TagName('SUB');261/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */262goog.dom.TagName.SUMMARY = new goog.dom.TagName('SUMMARY');263/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */264goog.dom.TagName.SUP = new goog.dom.TagName('SUP');265/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */266goog.dom.TagName.SVG = new goog.dom.TagName('SVG');267/** @type {!goog.dom.TagName<!HTMLTableElement>} */268goog.dom.TagName.TABLE = new goog.dom.TagName('TABLE');269/** @type {!goog.dom.TagName<!HTMLTableSectionElement>} */270goog.dom.TagName.TBODY = new goog.dom.TagName('TBODY');271/** @type {!goog.dom.TagName<!HTMLTableCellElement>} */272goog.dom.TagName.TD = new goog.dom.TagName('TD');273/** @type {!goog.dom.TagName<!HTMLTemplateElement>} */274goog.dom.TagName.TEMPLATE = new goog.dom.TagName('TEMPLATE');275/** @type {!goog.dom.TagName<!HTMLTextAreaElement>} */276goog.dom.TagName.TEXTAREA = new goog.dom.TagName('TEXTAREA');277/** @type {!goog.dom.TagName<!HTMLTableSectionElement>} */278goog.dom.TagName.TFOOT = new goog.dom.TagName('TFOOT');279/** @type {!goog.dom.TagName<!HTMLTableCellElement>} */280goog.dom.TagName.TH = new goog.dom.TagName('TH');281/** @type {!goog.dom.TagName<!HTMLTableSectionElement>} */282goog.dom.TagName.THEAD = new goog.dom.TagName('THEAD');283/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */284goog.dom.TagName.TIME = new goog.dom.TagName('TIME');285/** @type {!goog.dom.TagName<!HTMLTitleElement>} */286goog.dom.TagName.TITLE = new goog.dom.TagName('TITLE');287/** @type {!goog.dom.TagName<!HTMLTableRowElement>} */288goog.dom.TagName.TR = new goog.dom.TagName('TR');289/** @type {!goog.dom.TagName<!HTMLTrackElement>} */290goog.dom.TagName.TRACK = new goog.dom.TagName('TRACK');291/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */292goog.dom.TagName.TT = new goog.dom.TagName('TT');293/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */294goog.dom.TagName.U = new goog.dom.TagName('U');295/** @type {!goog.dom.TagName<!HTMLUListElement>} */296goog.dom.TagName.UL = new goog.dom.TagName('UL');297/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */298goog.dom.TagName.VAR = new goog.dom.TagName('VAR');299/** @type {!goog.dom.TagName<!HTMLVideoElement>} */300goog.dom.TagName.VIDEO = new goog.dom.TagName('VIDEO');301/** @type {!goog.dom.TagName<!goog.dom.HtmlElement>} */...

Full Screen

Full Screen

navigation.js

Source:navigation.js Github

copy

Full Screen

1var ejs = require('ejs');2var fs = require('fs');3var Swagger = module.exports = require('kaltura-spec-converter').swagger;4function readMD(name) {5 return fs.readFileSync(__dirname + '/markdown/' + name + '.md', 'utf8');6}7var definitions = Object.keys(Swagger.definitions).map(function(defName) {8 return {title: defName, definition: defName}9});10var ENUM_TMPL = ejs.compile(readMD('enum'));11var groups = module.exports = [{12 title: "Overview",13 contents: readMD('overview'),14}, {15 title: "Client Libraries",16 contents: require('./client_libraries.js'),17}, {18 title: "XML Schemas",19 contents: readMD('schemas'),20 children: require('./schemas.js'),21}, {22 title: "Generate API Sessions",23 children: [{24 title: "session",25 children: [26 {operation: "session.start"},27 {operation: "session.end"},28 {operation: "session.get"},29 {operation: "session.impersonate"},30 {operation: "session.impersonateByKs"},31 {operation: "session.startWidgetSession"},32 ]33 },34 {tag: "appToken"},35 {operation: 'user.loginByLoginId'},36 ],37}, {38 title: "Ingest and Upload Media",39 children: [40 {tag: "uploadToken"},41 {tag: "media"},42 {tag: "captionAsset"},43 {tag: "captionParams"},44 {tag: "thumbAsset"},45 {tag: "attachmentAsset"},46 {tag: "externalMedia"},47 {tag: "upload", hidden: true},48 ],49}, {50 title: "Execute Bulk Ingest and Updates",51 children: [52 {operation: "media.bulkUploadAdd"},53 {operation: "user.addFromBulkUpload"},54 {operation: "category.addFromBulkUpload"},55 {operation: "cuePoint.addFromBulk"},56 {operation: "categoryEntry.addFromBulkUpload"},57 {operation: "categoryUser.addFromBulkUpload"},58 {tag: "bulk"},59 {tag: "schema"},60 {tag: "dropFolder"},61 {tag: "dropFolderFile"},62 {tag: "virusScanProfile", hidden: true},63 {tag: "aspera", hidden: true},64 {tag: "bulkUpload", hidden: true},65 ],66}, {67 title: "Convert and Transcode Media",68 children: [69 {tag: "flavorAsset"},70 {tag: "flavorParams"},71 {tag: "flavorParamsOutput"},72 {tag: "conversionProfile"},73 {tag: "conversionProfileAssetParams"},74 {tag: "mediaInfo"},75 ],76}, {77 title: "Live Stream and Broadcast",78 children: [79 {tag: "liveStream"},80 ],81}, {82 title: "Enrich and Organize Metadata",83 children: [84 {tag: "baseEntry"},85 {tag: "category"},86 {tag: "categoryEntry"},87 {tag: "categoryUser"},88 {tag: "metadata"},89 {tag: "metadataProfile"},90 {tag: "captionAsset"},91 {tag: "captionParams"},92 {tag: "captionAssetItem"},93 {tag: "attachmentAsset"},94 {tag: "thumbAsset"},95 {tag: "thumbParams"},96 {tag: "tag"},97 ],98}, {99 title: "Search, Discover and Personalize",100 children: [101 {operation: "baseEntry.list"},102 {tag: "captionAssetItem"},103 {tag: "playlist"},104 {tag: "like"},105 {tag: "shortLink"},106 {tag: "tag"},107 {tag: "user"},108 {tag: "groupUser"},109 ],110}, {111 title: "Engage and Publish",112 children: [113 {tag: "playlist"},114 {tag: "thumbnail"},115 {tag: "cuePoint"},116 {tag: "quiz"},117 {tag: "userEntry"},118 {tag: "like"},119 {tag: "uiConf"},120 {tag: "annotation", hidden: true},121 ],122}, {123 title: "Review Media Analytics",124 children: [125 {tag: "analytics"},126 {tag: "report"},127 {tag: "liveReports"},128 {tag: "liveStats"},129 {tag: "stats"},130 ],131}, {132 title: "Deliver and Distribute Media",133 children: [134 {tag: "playManifest"},135 {tag: "syndicationFeed"},136 {tag: "entryDistribution"},137 {tag: "distributionProfile"},138 {tag: "distributionProvider"},139 {tag: "deliveryProfile", hidden: true},140 {tag: "storageProfile", hidden: true},141 ],142}, {143 title: "Secure, Control and Govern",144 children: [145 {tag: "partner"},146 {tag: "user"},147 {tag: "userRole"},148 {tag: "groupUser"},149 {tag: "accessControlProfile"},150 {tag: "categoryEntry"},151 {tag: "categoryUser"},152 {tag: "permission"},153 {tag: "permissionItem"},154 {tag: "accessControl", hidden: true},155 {tag: "adminUser", hidden: true},156 {tag: "auditTrail", hidden: true},157 ],158}, {159 title: "Optimize API Requests",160 children: [161 {tag: "multirequest"},162 {tag: "responseProfile"},163 ],164}, {165 title: "Integration, Scheduling and Hooks",166 children: [167 {tag: "eventNotificationTemplate"},168 {tag: "scheduledTaskProfile"},169 {170 title: "Scheduling Triggers using iCal",171 contents: readMD('scheduling'),172 children: [173 {tag: "scheduleEvent"},174 {tag: "scheduleEventResource"},175 {tag: "scheduleResource"},176 ]177 },178 {tag: "integration"},179 {tag: "businessProcessCase"},180 {tag: "notification", hidden: true},181 ],182}, {183 title: "Encrypt and License Content",184 children: [185 {tag: "drmLicenseAccess"},186 {tag: "drmPolicy"},187 {tag: "drmProfile"},188 {tag: "playReadyDrm"},189 {tag: "widevineDrm"},190 {tag: "deliveryProfile", hidden: true},191 ],192}, {193 title: "Manage Documents and Other Assets",194 children: [195 {tag: "baseEntry"},196 {tag: "data"},197 {tag: "documents"},198 ],199}, {200 title: "Manage and Deliver Apps and Widgets",201 children: [202 {tag: "uiConf"},203 {tag: "widget"},204 {tag: "fileAsset"},205 {tag: "captureSpace"},206 ],207}, {208 title: "Manage Backend and Storage",209 children: [210 {tag: "system"},211 {tag: "storageProfile", hidden: true},212 ],213}, {214 title: "General Objects",215 children: [{216 title: "Objects",217 children: definitions.filter(d => d.definition.indexOf('Filter') === -1),218 }, {219 title: "Enums",220 children: Object.keys(Swagger['x-enums']).map(function(e) {221 return {222 title: e,223 contents: ENUM_TMPL({name: e, schema: Swagger['x-enums'][e]}),224 }225 })226 }, {227 title: "Filters",228 children: definitions.filter(d => d.definition.indexOf('Filter') !== -1),229 }],230}, {231 title: "Error Codes",232 contents: readMD('errors'),233}]234groups.forEach(function(g) {235 if (!g.operation && !g.tag && !g.contents) {236 g.contents = '# ' + g.title;237 }...

Full Screen

Full Screen

test_tag.py

Source:test_tag.py Github

copy

Full Screen

1#2# This file is part of pyasn1 software.3#4# Copyright (c) 2005-2017, Ilya Etingof <etingof@gmail.com>5# License: http://snmplabs.com/pyasn1/license.html6#7import sys8try:9 import unittest2 as unittest10except ImportError:11 import unittest12from tests.base import BaseTestCase13from pyasn1.type import tag14class TagTestCaseBase(BaseTestCase):15 def setUp(self):16 BaseTestCase.setUp(self)17 self.t1 = tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 3)18 self.t2 = tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 3)19class TagReprTestCase(TagTestCaseBase):20 def testRepr(self):21 assert 'Tag' in repr(self.t1)22class TagCmpTestCase(TagTestCaseBase):23 def testCmp(self):24 assert self.t1 == self.t2, 'tag comparation fails'25 def testHash(self):26 assert hash(self.t1) == hash(self.t2), 'tag hash comparation fails'27 def testSequence(self):28 assert self.t1[0] == self.t2[0] and \29 self.t1[1] == self.t2[1] and \30 self.t1[2] == self.t2[2], 'tag sequence protocol fails'31class TagSetTestCaseBase(BaseTestCase):32 def setUp(self):33 BaseTestCase.setUp(self)34 self.ts1 = tag.initTagSet(35 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12)36 )37 self.ts2 = tag.initTagSet(38 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12)39 )40class TagSetReprTestCase(TagSetTestCaseBase):41 def testRepr(self):42 assert 'TagSet' in repr(self.ts1)43class TagSetCmpTestCase(TagSetTestCaseBase):44 def testCmp(self):45 assert self.ts1 == self.ts2, 'tag set comparation fails'46 def testHash(self):47 assert hash(self.ts1) == hash(self.ts2), 'tag set hash comp. fails'48 def testLen(self):49 assert len(self.ts1) == len(self.ts2), 'tag length comparation fails'50class TaggingTestSuite(TagSetTestCaseBase):51 def testImplicitTag(self):52 t = self.ts1.tagImplicitly(53 tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 14)54 )55 assert t == tag.TagSet(56 tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 12),57 tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 14)58 ), 'implicit tagging went wrong'59 def testExplicitTag(self):60 t = self.ts1.tagExplicitly(61 tag.Tag(tag.tagClassPrivate, tag.tagFormatSimple, 32)62 )63 assert t == tag.TagSet(64 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),65 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),66 tag.Tag(tag.tagClassPrivate, tag.tagFormatConstructed, 32)67 ), 'explicit tagging went wrong'68class TagSetAddTestSuite(TagSetTestCaseBase):69 def testAdd(self):70 t = self.ts1 + tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 2)71 assert t == tag.TagSet(72 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),73 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),74 tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 2)75 ), 'TagSet.__add__() fails'76 def testRadd(self):77 t = tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 2) + self.ts178 assert t == tag.TagSet(79 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),80 tag.Tag(tag.tagClassApplication, tag.tagFormatSimple, 2),81 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12)82 ), 'TagSet.__radd__() fails'83class SuperTagSetTestCase(TagSetTestCaseBase):84 def testSuperTagCheck1(self):85 assert self.ts1.isSuperTagSetOf(86 tag.TagSet(87 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),88 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12)89 )), 'isSuperTagSetOf() fails'90 def testSuperTagCheck2(self):91 assert not self.ts1.isSuperTagSetOf(92 tag.TagSet(93 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12),94 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 13)95 )), 'isSuperTagSetOf() fails'96 def testSuperTagCheck3(self):97 assert self.ts1.isSuperTagSetOf(98 tag.TagSet((), tag.Tag(tag.tagClassUniversal,99 tag.tagFormatSimple, 12))100 ), 'isSuperTagSetOf() fails'101suite = unittest.TestLoader().loadTestsFromModule(sys.modules[__name__])102if __name__ == '__main__':...

Full Screen

Full Screen

test.min.js

Source:test.min.js Github

copy

Full Screen

1// CodeMirror, copyright (c) by Marijn Haverbeke and others2// Distributed under an MIT license: http://codemirror.net/LICENSE3(function() {4 var mode = CodeMirror.getMode({indentUnit: 2}, "jsx")5 function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)) }6 MT("selfclose",7 "[keyword var] [def x] [operator =] [bracket&tag <] [tag foo] [bracket&tag />] [operator +] [number 1];")8 MT("openclose",9 "([bracket&tag <][tag foo][bracket&tag >]hello [atom &amp;][bracket&tag </][tag foo][bracket&tag >][operator ++])")10 MT("attr",11 "([bracket&tag <][tag foo] [attribute abc]=[string 'value'][bracket&tag >]hello [atom &amp;][bracket&tag </][tag foo][bracket&tag >][operator ++])")12 MT("braced_attr",13 "([bracket&tag <][tag foo] [attribute abc]={[number 10]}[bracket&tag >]hello [atom &amp;][bracket&tag </][tag foo][bracket&tag >][operator ++])")14 MT("braced_text",15 "([bracket&tag <][tag foo][bracket&tag >]hello {[number 10]} [atom &amp;][bracket&tag </][tag foo][bracket&tag >][operator ++])")16 MT("nested_tag",17 "([bracket&tag <][tag foo][bracket&tag ><][tag bar][bracket&tag ></][tag bar][bracket&tag ></][tag foo][bracket&tag >][operator ++])")18 MT("nested_jsx",19 "[keyword return] (",20 " [bracket&tag <][tag foo][bracket&tag >]",21 " say {[number 1] [operator +] [bracket&tag <][tag bar] [attribute attr]={[number 10]}[bracket&tag />]}!",22 " [bracket&tag </][tag foo][bracket&tag >][operator ++]",23 ")")24 MT("preserve_js_context",25 "[variable x] [operator =] [string-2 `quasi${][bracket&tag <][tag foo][bracket&tag />][string-2 }quoted`]")26 MT("string_interpolation",27 "[variable x] [operator =] [string-2 `quasi<code>${] [number 10] [string-2 }</code>`]")28 MT("line_comment",29 "([bracket&tag <][tag foo] [comment // hello]",30 " [bracket&tag ></][tag foo][bracket&tag >][operator ++])")31 MT("line_comment_not_in_tag",32 "([bracket&tag <][tag foo][bracket&tag >] // hello",33 " [bracket&tag </][tag foo][bracket&tag >][operator ++])")34 MT("block_comment",35 "([bracket&tag <][tag foo] [comment /* hello]",36 "[comment line 2]",37 "[comment line 3 */] [bracket&tag ></][tag foo][bracket&tag >][operator ++])")38 MT("block_comment_not_in_tag",39 "([bracket&tag <][tag foo][bracket&tag >]/* hello",40 " line 2",41 " line 3 */ [bracket&tag </][tag foo][bracket&tag >][operator ++])")42 MT("missing_attr",43 "([bracket&tag <][tag foo] [attribute selected][bracket&tag />][operator ++])")44 MT("indent_js",45 "([bracket&tag <][tag foo][bracket&tag >]",46 " [bracket&tag <][tag bar] [attribute baz]={[keyword function]() {",47 " [keyword return] [number 10]",48 " }}[bracket&tag />]",49 " [bracket&tag </][tag foo][bracket&tag >])")50 MT("spread",51 "([bracket&tag <][tag foo] [attribute bar]={[meta ...][variable baz] [operator /][number 2]}[bracket&tag />])")52 MT("tag_attribute",53 "([bracket&tag <][tag foo] [attribute bar]=[bracket&tag <][tag foo][bracket&tag />/>][operator ++])")54 var ts_mode = CodeMirror.getMode({indentUnit: 2}, "text/typescript-jsx")55 function TS(name) { test.mode(name, ts_mode, Array.prototype.slice.call(arguments, 1)) }56 TS("tsx_react_integration",57 "[keyword interface] [def Props] {",58 " [property foo]: [type string];",59 "}",60 "[keyword class] [def MyComponent] [keyword extends] [type React].[type Component] [operator <] [type Props], [type any] [operator >] {",61 " [property render]() {",62 " [keyword return] [bracket&tag <][tag span][bracket&tag >]{[keyword this].[property props].[property foo]}[bracket&tag </][tag span][bracket&tag >]",63 " }",64 "}",65 "[bracket&tag <][tag MyComponent] [attribute foo]=[string \"bar\"] [bracket&tag />]; [comment //ok]",66 "[bracket&tag <][tag MyComponent] [attribute foo]={[number 0]} [bracket&tag />]; [comment //error]")...

Full Screen

Full Screen

test.js

Source:test.js Github

copy

Full Screen

1// CodeMirror, copyright (c) by Marijn Haverbeke and others2// Distributed under an MIT license: http://codemirror.net/LICENSE3(function() {4 var mode = CodeMirror.getMode({indentUnit: 2}, "jsx")5 function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)) }6 MT("selfclose",7 "[keyword var] [def x] [operator =] [bracket&tag <] [tag foo] [bracket&tag />] [operator +] [number 1];")8 MT("openclose",9 "([bracket&tag <][tag foo][bracket&tag >]hello [atom &amp;][bracket&tag </][tag foo][bracket&tag >][operator ++])")10 MT("attr",11 "([bracket&tag <][tag foo] [attribute abc]=[string 'value'][bracket&tag >]hello [atom &amp;][bracket&tag </][tag foo][bracket&tag >][operator ++])")12 MT("braced_attr",13 "([bracket&tag <][tag foo] [attribute abc]={[number 10]}[bracket&tag >]hello [atom &amp;][bracket&tag </][tag foo][bracket&tag >][operator ++])")14 MT("braced_text",15 "([bracket&tag <][tag foo][bracket&tag >]hello {[number 10]} [atom &amp;][bracket&tag </][tag foo][bracket&tag >][operator ++])")16 MT("nested_tag",17 "([bracket&tag <][tag foo][bracket&tag ><][tag bar][bracket&tag ></][tag bar][bracket&tag ></][tag foo][bracket&tag >][operator ++])")18 MT("nested_jsx",19 "[keyword return] (",20 " [bracket&tag <][tag foo][bracket&tag >]",21 " say {[number 1] [operator +] [bracket&tag <][tag bar] [attribute attr]={[number 10]}[bracket&tag />]}!",22 " [bracket&tag </][tag foo][bracket&tag >][operator ++]",23 ")")24 MT("preserve_js_context",25 "[variable x] [operator =] [string-2 `quasi${][bracket&tag <][tag foo][bracket&tag />][string-2 }quoted`]")26 MT("line_comment",27 "([bracket&tag <][tag foo] [comment // hello]",28 " [bracket&tag ></][tag foo][bracket&tag >][operator ++])")29 MT("line_comment_not_in_tag",30 "([bracket&tag <][tag foo][bracket&tag >] // hello",31 " [bracket&tag </][tag foo][bracket&tag >][operator ++])")32 MT("block_comment",33 "([bracket&tag <][tag foo] [comment /* hello]",34 "[comment line 2]",35 "[comment line 3 */] [bracket&tag ></][tag foo][bracket&tag >][operator ++])")36 MT("block_comment_not_in_tag",37 "([bracket&tag <][tag foo][bracket&tag >]/* hello",38 " line 2",39 " line 3 */ [bracket&tag </][tag foo][bracket&tag >][operator ++])")40 MT("missing_attr",41 "([bracket&tag <][tag foo] [attribute selected][bracket&tag />][operator ++])")42 MT("indent_js",43 "([bracket&tag <][tag foo][bracket&tag >]",44 " [bracket&tag <][tag bar] [attribute baz]={[keyword function]() {",45 " [keyword return] [number 10]",46 " }}[bracket&tag />]",47 " [bracket&tag </][tag foo][bracket&tag >])")48 MT("spread",49 "([bracket&tag <][tag foo] [attribute bar]={[meta ...][variable baz] [operator /][number 2]}[bracket&tag />])")50 MT("tag_attribute",51 "([bracket&tag <][tag foo] [attribute bar]=[bracket&tag <][tag foo][bracket&tag />/>][operator ++])")...

Full Screen

Full Screen

char.py

Source:char.py Github

copy

Full Screen

1# ASN.1 "character string" types2from pyasn1.type import univ, tag3class UTF8String(univ.OctetString):4 tagSet = univ.OctetString.tagSet.tagImplicitly(5 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 12)6 )7 encoding = "utf-8"8class NumericString(univ.OctetString):9 tagSet = univ.OctetString.tagSet.tagImplicitly(10 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 18)11 )12class PrintableString(univ.OctetString):13 tagSet = univ.OctetString.tagSet.tagImplicitly(14 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 19)15 )16class TeletexString(univ.OctetString):17 tagSet = univ.OctetString.tagSet.tagImplicitly(18 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 20)19 )20 21class VideotexString(univ.OctetString):22 tagSet = univ.OctetString.tagSet.tagImplicitly(23 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 21)24 )25class IA5String(univ.OctetString):26 tagSet = univ.OctetString.tagSet.tagImplicitly(27 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 22)28 )29class GraphicString(univ.OctetString):30 tagSet = univ.OctetString.tagSet.tagImplicitly(31 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 25)32 )33class VisibleString(univ.OctetString):34 tagSet = univ.OctetString.tagSet.tagImplicitly(35 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 26)36 )37class GeneralString(univ.OctetString):38 tagSet = univ.OctetString.tagSet.tagImplicitly(39 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 27)40 )41class UniversalString(univ.OctetString):42 tagSet = univ.OctetString.tagSet.tagImplicitly(43 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 28)44 )45 encoding = "utf-32-be"46class BMPString(univ.OctetString):47 tagSet = univ.OctetString.tagSet.tagImplicitly(48 tag.Tag(tag.tagClassUniversal, tag.tagFormatSimple, 30)49 )...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: 'example.png' });7 await browser.close();8})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page.screenshot({ path: `screenshot.png` });6 await browser.close();7})();8const { chromium } = require('playwright');9const { devices } = require('playwright');10(async () => {11 const browser = await chromium.launch();12 const context = await browser.newContext({ ...devices['iPhone 6'] });13 const page = await context.newPage();14 await page.screenshot({ path: `screenshot.png` });15 await browser.close();16})();17const { chromium } = require('playwright');18const { devices } = require('playwright');19(async () => {20 const browser = await chromium.launch();21 const context = await browser.newContext({ ...devices['iPhone 6'] });22 const page = await context.newPage();23 await page.screenshot({ path: `screenshot.png` });24 await browser.close();25})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { tag } = require('@playwright/test');2const { test, expect } = require('@playwright/test');3test('My test', async ({ page }) => {4 const title = await page.title();5 tag('smoke');6 expect(title).toBe('Playwright');7});8const { tag } = require('@playwright/test');9const { test, expect } = require('@playwright/test');10test('My test', async ({ page }) => {11 const title = await page.title();12 tag('smoke');13 expect(title).toBe('Playwright');14});15const { tag } = require('@playwright/test');16const { test, expect } = require('@playwright/test');17test('My test', async ({ page }) => {18 const title = await page.title();19 tag('smoke');20 expect(title).toBe('Playwright');21});22const { tag } = require('@playwright/test');23const { test, expect } = require('@playwright/test');24test('My test', async ({ page }) => {25 const title = await page.title();26 tag('smoke');27 expect(title).toBe('Playwright');28});29const { tag } = require('@playwright/test');30const { test, expect } = require('@playwright/test');31test('My test', async ({ page }) => {32 const title = await page.title();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { test, expect } = require('@playwright/test');2test('My test', async ({ page }) => {3 await page.click('text=Get Started');4 await page.click('text=Docs');5 await page.click('text=API');6 await page.click('text=Class: Page');7 await page.click('text=page.tag');8 await expect(page).toHaveText('page.tag');9});

Full Screen

Using AI Code Generation

copy

Full Screen

1const { tag } = require('@playwright/test');2const { testInfo } = require('@playwright/test');3const { expect } = require('@playwright/test');4const { test } = require('@playwright/test');5const { expect } = require('@playwright/test');6const { test } = require('@playwright/test');7const { expect } = require('@playwright/test');8const { test } = require('@playwright/test');9const { expect } = require('@playwright/test');10const { test } = require('@playwright/test');11const { expect } = require('@playwright/test');12const { test } = require('@playwright/test');13const { expect } = require('@playwright/test');14const { test } = require('@playwright/test');15const { expect } = require('@playwright/test');16const { test } = require('@playwright/test');17const { expect } = require('@playwright/test');18const { test } = require('@playwright/test');19const { expect } = require('@playwright/test');20const { test } = require('@playwright/test');21const { expect } = require('@playwright/test');22const { test } = require('@playwright/test');

Full Screen

Using AI Code Generation

copy

Full Screen

1const { test } = require('@playwright/test');2test('test', async ({ page }) => {3 await page.click('text=Get Started');4 await page.click('text=Docs');5 await page.click('text=API');6 await page.click('text=class: Page')

Full Screen

Using AI Code Generation

copy

Full Screen

1const { test } = require('@playwright/test');2test.describe('My Test', () => {3 test('My Test', async ({ page }) => {4 await page.evaluate(() => {5 test.tag('myTag');6 });7 });8});

Full Screen

Using AI Code Generation

copy

Full Screen

1const { tag } = require('@playwright/test');2test('test', async ({ page }) => {3 const title = await page.title();4 tag('test-tag').step('test', async () => {5 console.log(title);6 });7});8const { tag } = require('@playwright/test');9test('test', async ({ page }) => {10 const title = await page.title();11 tag('test-tag').step('test', async () => {12 console.log(title);13 });14});15const { tag } = require('@playwright/test');16test('test', async ({ page }) => {17 const title = await page.title();18 tag('test-tag').step('test', async () => {19 console.log(title);20 });21});22const { tag } = require('@playwright/test');23test('test', async ({ page }) => {24 const title = await page.title();25 tag('test-tag').step('test', async () => {26 console.log(title);27 });28});29const { tag } = require('@playwright/test');30test('test', async ({ page }) => {31 const title = await page.title();32 tag('test-tag').step('test', async () => {33 console.log(title);34 });35});

Full Screen

Using AI Code Generation

copy

Full Screen

1const { test, expect } = require('@playwright/test');2test('My test', async ({ page }) => {3 page.internal.console.tag('my-tag').log('Hello world');4 page.internal.console.tag({ tag: 'my-tag', color: 'green' }).log('Hello world');5 page.internal.console.tag({ tag: 'my-tag', color: 'green', backgroundColor: 'black' }).log('Hello world');6});7const { test, expect } = require('@playwright/test');8 async myTestFixtute({ page }) {9 page.internal.console.tag('my-tag').log('Hello world');10 page.internal.console.tag({ tag: 'my-tag', color: 'green' }).log('Hello world');11 page.internal.console.tag({ tag: 'my-tag', color: 'green', backgroundColor: 'black' }).log('Hello world');12 },13});14test('My test', async ({ myTestFixtute }) => {15 await myTestFixtute();16});17const { test, expect } = require('@playwright/test');

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.$eval('[aria-label="Search"]', (el) => el.setAttribute('data-test-id', 'search'));7 await page.fill('[data-test-id="search"]', 'hello');8 await browser.close();9})();10const { test } = require('@playwright/test');11test('tagging', async ({ page }) => {12 await page.$eval('[aria-label="Search"]', (el) => el.setAttribute('data-test-id', 'search'));13 await page.fill('[data-test-id="search"]', 'hello');14});15const { test } = require('@playwright/test');16test('tagging', async ({ page }) => {17 await page.$eval('[aria-label="Search"]', (el) => el.setAttribute('data-test-id', 'search'));18 await page.fill('[data-test-id="search"]', 'hello');19});

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