Best JavaScript code snippet using playwright-internal
CachedSource.js
Source: CachedSource.js
1/*2 MIT License http://www.opensource.org/licenses/mit-license.php3 Author Tobias Koppers @sokra4*/5"use strict";6const Source = require("./Source");7const streamChunksOfSourceMap = require("./helpers/streamChunksOfSourceMap");8const streamChunksOfRawSource = require("./helpers/streamChunksOfRawSource");9const streamAndGetSourceAndMap = require("./helpers/streamAndGetSourceAndMap");10const mapToBufferedMap = map => {11 if (typeof map !== "object" || !map) return map;12 const bufferedMap = Object.assign({}, map);13 if (map.mappings) {14 bufferedMap.mappings = Buffer.from(map.mappings, "utf-8");15 }16 if (map.sourcesContent) {17 bufferedMap.sourcesContent = map.sourcesContent.map(18 str => str && Buffer.from(str, "utf-8")19 );20 }21 return bufferedMap;22};23const bufferedMapToMap = bufferedMap => {24 if (typeof bufferedMap !== "object" || !bufferedMap) return bufferedMap;25 const map = Object.assign({}, bufferedMap);26 if (bufferedMap.mappings) {27 map.mappings = bufferedMap.mappings.toString("utf-8");28 }29 if (bufferedMap.sourcesContent) {30 map.sourcesContent = bufferedMap.sourcesContent.map(31 buffer => buffer && buffer.toString("utf-8")32 );33 }34 return map;35};36class CachedSource extends Source {37 constructor(source, cachedData) {38 super();39 this._source = source;40 this._cachedSourceType = cachedData ? cachedData.source : undefined;41 this._cachedSource = undefined;42 this._cachedBuffer = cachedData ? cachedData.buffer : undefined;43 this._cachedSize = cachedData ? cachedData.size : undefined;44 this._cachedMaps = cachedData ? cachedData.maps : new Map();45 this._cachedHashUpdate = cachedData ? cachedData.hash : undefined;46 }47 getCachedData() {48 const bufferedMaps = new Map();49 for (const pair of this._cachedMaps) {50 let cacheEntry = pair[1];51 if (cacheEntry.bufferedMap === undefined) {52 cacheEntry.bufferedMap = mapToBufferedMap(53 this._getMapFromCacheEntry(cacheEntry)54 );55 }56 bufferedMaps.set(pair[0], {57 map: undefined,58 bufferedMap: cacheEntry.bufferedMap59 });60 }61 // We don't want to cache strings62 // So if we have a caches sources63 // create a buffer from it and only store64 // if it was a Buffer or string65 if (this._cachedSource) {66 this.buffer();67 }68 return {69 buffer: this._cachedBuffer,70 source:71 this._cachedSourceType !== undefined72 ? this._cachedSourceType73 : typeof this._cachedSource === "string"74 ? true75 : Buffer.isBuffer(this._cachedSource)76 ? false77 : undefined,78 size: this._cachedSize,79 maps: bufferedMaps,80 hash: this._cachedHashUpdate81 };82 }83 originalLazy() {84 return this._source;85 }86 original() {87 if (typeof this._source === "function") this._source = this._source();88 return this._source;89 }90 source() {91 const source = this._getCachedSource();92 if (source !== undefined) return source;93 return (this._cachedSource = this.original().source());94 }95 _getMapFromCacheEntry(cacheEntry) {96 if (cacheEntry.map !== undefined) {97 return cacheEntry.map;98 } else if (cacheEntry.bufferedMap !== undefined) {99 return (cacheEntry.map = bufferedMapToMap(cacheEntry.bufferedMap));100 }101 }102 _getCachedSource() {103 if (this._cachedSource !== undefined) return this._cachedSource;104 if (this._cachedBuffer && this._cachedSourceType !== undefined) {105 return (this._cachedSource = this._cachedSourceType106 ? this._cachedBuffer.toString("utf-8")107 : this._cachedBuffer);108 }109 }110 buffer() {111 if (this._cachedBuffer !== undefined) return this._cachedBuffer;112 if (this._cachedSource !== undefined) {113 if (Buffer.isBuffer(this._cachedSource)) {114 return (this._cachedBuffer = this._cachedSource);115 }116 return (this._cachedBuffer = Buffer.from(this._cachedSource, "utf-8"));117 }118 if (typeof this.original().buffer === "function") {119 return (this._cachedBuffer = this.original().buffer());120 }121 const bufferOrString = this.source();122 if (Buffer.isBuffer(bufferOrString)) {123 return (this._cachedBuffer = bufferOrString);124 }125 return (this._cachedBuffer = Buffer.from(bufferOrString, "utf-8"));126 }127 size() {128 if (this._cachedSize !== undefined) return this._cachedSize;129 if (this._cachedBuffer !== undefined) {130 return (this._cachedSize = this._cachedBuffer.length);131 }132 const source = this._getCachedSource();133 if (source !== undefined) {134 return (this._cachedSize = Buffer.byteLength(source));135 }136 return (this._cachedSize = this.original().size());137 }138 sourceAndMap(options) {139 const key = options ? JSON.stringify(options) : "{}";140 const cacheEntry = this._cachedMaps.get(key);141 // Look for a cached map142 if (cacheEntry !== undefined) {143 // We have a cached map in some representation144 const map = this._getMapFromCacheEntry(cacheEntry);145 // Either get the cached source or compute it146 return { source: this.source(), map };147 }148 // Look for a cached source149 let source = this._getCachedSource();150 // Compute the map151 let map;152 if (source !== undefined) {153 map = this.original().map(options);154 } else {155 // Compute the source and map together.156 const sourceAndMap = this.original().sourceAndMap(options);157 source = sourceAndMap.source;158 map = sourceAndMap.map;159 this._cachedSource = source;160 }161 this._cachedMaps.set(key, {162 map,163 bufferedMap: undefined164 });165 return { source, map };166 }167 streamChunks(options, onChunk, onSource, onName) {168 const key = options ? JSON.stringify(options) : "{}";169 if (170 this._cachedMaps.has(key) &&171 (this._cachedBuffer !== undefined || this._cachedSource !== undefined)172 ) {173 const { source, map } = this.sourceAndMap(options);174 if (map) {175 return streamChunksOfSourceMap(176 source,177 map,178 onChunk,179 onSource,180 onName,181 !!(options && options.finalSource),182 true183 );184 } else {185 return streamChunksOfRawSource(186 source,187 onChunk,188 onSource,189 onName,190 !!(options && options.finalSource)191 );192 }193 }194 const { result, source, map } = streamAndGetSourceAndMap(195 this.original(),196 options,197 onChunk,198 onSource,199 onName200 );201 this._cachedSource = source;202 this._cachedMaps.set(key, {203 map,204 bufferedMap: undefined205 });206 return result;207 }208 map(options) {209 const key = options ? JSON.stringify(options) : "{}";210 const cacheEntry = this._cachedMaps.get(key);211 if (cacheEntry !== undefined) {212 return this._getMapFromCacheEntry(cacheEntry);213 }214 const map = this.original().map(options);215 this._cachedMaps.set(key, {216 map,217 bufferedMap: undefined218 });219 return map;220 }221 updateHash(hash) {222 if (this._cachedHashUpdate !== undefined) {223 for (const item of this._cachedHashUpdate) hash.update(item);224 return;225 }226 const update = [];227 let currentString = undefined;228 const tracker = {229 update: item => {230 if (typeof item === "string" && item.length < 10240) {231 if (currentString === undefined) {232 currentString = item;233 } else {234 currentString += item;235 if (currentString.length > 102400) {236 update.push(Buffer.from(currentString));237 currentString = undefined;238 }239 }240 } else {241 if (currentString !== undefined) {242 update.push(Buffer.from(currentString));243 currentString = undefined;244 }245 update.push(item);246 }247 }248 };249 this.original().updateHash(tracker);250 if (currentString !== undefined) {251 update.push(Buffer.from(currentString));252 }253 for (const item of update) hash.update(item);254 this._cachedHashUpdate = update;255 }256}...
AbstractComponent.js
Source: AbstractComponent.js
1/**2 * @private3 * This is the abstract class for {@link Ext.Component}.4 *5 * This should never be overriden.6 */7Ext.define('Ext.AbstractComponent', {8 extend: 'Ext.Evented',9 onClassExtended: function(Class, members) {10 if (!members.hasOwnProperty('cachedConfig')) {11 return;12 }13 var prototype = Class.prototype,14 config = members.config,15 cachedConfig = members.cachedConfig,16 cachedConfigList = prototype.cachedConfigList,17 hasCachedConfig = prototype.hasCachedConfig,18 name, value;19 delete members.cachedConfig;20 prototype.cachedConfigList = cachedConfigList = (cachedConfigList) ? cachedConfigList.slice() : [];21 prototype.hasCachedConfig = hasCachedConfig = (hasCachedConfig) ? Ext.Object.chain(hasCachedConfig) : {};22 if (!config) {23 members.config = config = {};24 }25 for (name in cachedConfig) {26 if (cachedConfig.hasOwnProperty(name)) {27 value = cachedConfig[name];28 if (!hasCachedConfig[name]) {29 hasCachedConfig[name] = true;30 cachedConfigList.push(name);31 }32 config[name] = value;33 }34 }35 },36 getElementConfig: Ext.emptyFn,37 referenceAttributeName: 'reference',38 referenceSelector: '[reference]',39 /**40 * @private41 * Significantly improve instantiation time for Component with multiple references42 * Ext.Element instance of the reference domNode is only created the very first time43 * it's ever used44 */45 addReferenceNode: function(name, domNode) {46 Ext.Object.defineProperty(this, name, {47 get: function() {48 var reference;49 delete this[name];50 this[name] = reference = new Ext.Element(domNode);51 return reference;52 },53 configurable: true54 });55 },56 initElement: function() {57 var prototype = this.self.prototype,58 id = this.getId(),59 referenceList = [],60 cleanAttributes = true,61 referenceAttributeName = this.referenceAttributeName,62 needsOptimization = false,63 renderTemplate, renderElement, element,64 referenceNodes, i, ln, referenceNode, reference,65 configNameCache, defaultConfig, cachedConfigList, initConfigList, initConfigMap, configList,66 elements, name, nameMap, internalName;67 if (prototype.hasOwnProperty('renderTemplate')) {68 renderTemplate = this.renderTemplate.cloneNode(true);69 renderElement = renderTemplate.firstChild;70 }71 else {72 cleanAttributes = false;73 needsOptimization = true;74 renderTemplate = document.createDocumentFragment();75 renderElement = Ext.Element.create(this.getElementConfig(), true);76 renderTemplate.appendChild(renderElement);77 }78 referenceNodes = renderTemplate.querySelectorAll(this.referenceSelector);79 for (i = 0,ln = referenceNodes.length; i < ln; i++) {80 referenceNode = referenceNodes[i];81 reference = referenceNode.getAttribute(referenceAttributeName);82 if (cleanAttributes) {83 referenceNode.removeAttribute(referenceAttributeName);84 }85 if (reference == 'element') {86 referenceNode.id = id;87 this.element = element = new Ext.Element(referenceNode);88 }89 else {90 this.addReferenceNode(reference, referenceNode);91 }92 referenceList.push(reference);93 }94 this.referenceList = referenceList;95 if (!this.innerElement) {96 this.innerElement = element;97 }98 if (renderElement === element.dom) {99 this.renderElement = element;100 }101 else {102 this.addReferenceNode('renderElement', renderElement);103 }104 // This happens only *once* per class, during the very first instantiation105 // to optimize renderTemplate based on cachedConfig106 if (needsOptimization) {107 configNameCache = Ext.Class.configNameCache;108 defaultConfig = this.config;109 cachedConfigList = this.cachedConfigList;110 initConfigList = this.initConfigList;111 initConfigMap = this.initConfigMap;112 configList = [];113 for (i = 0,ln = cachedConfigList.length; i < ln; i++) {114 name = cachedConfigList[i];115 nameMap = configNameCache[name];116 if (initConfigMap[name]) {117 initConfigMap[name] = false;118 Ext.Array.remove(initConfigList, name);119 }120 if (defaultConfig[name] !== null) {121 configList.push(name);122 this[nameMap.get] = this[nameMap.initGet];123 }124 }125 for (i = 0,ln = configList.length; i < ln; i++) {126 name = configList[i];127 nameMap = configNameCache[name];128 internalName = nameMap.internal;129 this[internalName] = null;130 this[nameMap.set].call(this, defaultConfig[name]);131 delete this[nameMap.get];132 prototype[internalName] = this[internalName];133 }134 renderElement = this.renderElement.dom;135 prototype.renderTemplate = renderTemplate = document.createDocumentFragment();136 renderTemplate.appendChild(renderElement.cloneNode(true));137 elements = renderTemplate.querySelectorAll('[id]');138 for (i = 0,ln = elements.length; i < ln; i++) {139 element = elements[i];140 element.removeAttribute('id');141 }142 for (i = 0,ln = referenceList.length; i < ln; i++) {143 reference = referenceList[i];144 this[reference].dom.removeAttribute('reference');145 }146 }147 return this;148 }...
test_functional.py
Source: test_functional.py
...52 raise RuntimeError("never called, slots not supported")53# noinspection PyStatementEffect54@unittest.skipIf(sys.version_info >= (3, 8), "Python 3.8+ uses standard library implementation.")55class TestCachedProperty(unittest.TestCase):56 def test_cached(self):57 item = CachedCostItem()58 self.assertEqual(item.cost, 2)59 self.assertEqual(item.cost, 2) # not 360 def test_cached_attribute_name_differs_from_func_name(self):61 item = OptionallyCachedCostItem()62 self.assertEqual(item.get_cost(), 2)63 self.assertEqual(item.cached_cost, 3)64 self.assertEqual(item.get_cost(), 4)65 self.assertEqual(item.cached_cost, 3)66 def test_threaded(self):67 go = threading.Event()68 item = CachedCostItemWait(go)69 num_threads = 370 orig_si = sys.getswitchinterval()...
test_inlinequeryresultcachedvideo.py
1#!/usr/bin/env python2#3# A library that provides a Python interface to the Telegram Bot API4# Copyright (C) 2015-20205# Leandro Toledo de Souza <devs@python-telegram-bot.org>6#7# This program is free software: you can redistribute it and/or modify8# it under the terms of the GNU Lesser Public License as published by9# the Free Software Foundation, either version 3 of the License, or10# (at your option) any later version.11#12# This program is distributed in the hope that it will be useful,13# but WITHOUT ANY WARRANTY; without even the implied warranty of14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the15# GNU Lesser Public License for more details.16#17# You should have received a copy of the GNU Lesser Public License18# along with this program. If not, see [http://www.gnu.org/licenses/].19import pytest20from telegram import (InlineKeyboardMarkup, InlineKeyboardButton, InputTextMessageContent,21 InlineQueryResultCachedVideo, InlineQueryResultCachedVoice)22@pytest.fixture(scope='class')23def inline_query_result_cached_video():24 return InlineQueryResultCachedVideo(25 TestInlineQueryResultCachedVideo.id_,26 TestInlineQueryResultCachedVideo.video_file_id,27 TestInlineQueryResultCachedVideo.title,28 caption=TestInlineQueryResultCachedVideo.caption,29 parse_mode=TestInlineQueryResultCachedVideo.parse_mode,30 description=TestInlineQueryResultCachedVideo.description,31 input_message_content=TestInlineQueryResultCachedVideo.input_message_content,32 reply_markup=TestInlineQueryResultCachedVideo.reply_markup)33class TestInlineQueryResultCachedVideo:34 id_ = 'id'35 type_ = 'video'36 video_file_id = 'video file id'37 title = 'title'38 caption = 'caption'39 parse_mode = 'Markdown'40 description = 'description'41 input_message_content = InputTextMessageContent('input_message_content')42 reply_markup = InlineKeyboardMarkup([[InlineKeyboardButton('reply_markup')]])43 def test_expected_values(self, inline_query_result_cached_video):44 assert inline_query_result_cached_video.type == self.type_45 assert inline_query_result_cached_video.id == self.id_46 assert inline_query_result_cached_video.video_file_id == self.video_file_id47 assert inline_query_result_cached_video.title == self.title48 assert inline_query_result_cached_video.description == self.description49 assert inline_query_result_cached_video.caption == self.caption50 assert inline_query_result_cached_video.parse_mode == self.parse_mode51 assert (inline_query_result_cached_video.input_message_content.to_dict()52 == self.input_message_content.to_dict())53 assert (inline_query_result_cached_video.reply_markup.to_dict()54 == self.reply_markup.to_dict())55 def test_to_dict(self, inline_query_result_cached_video):56 inline_query_result_cached_video_dict = inline_query_result_cached_video.to_dict()57 assert isinstance(inline_query_result_cached_video_dict, dict)58 assert (inline_query_result_cached_video_dict['type']59 == inline_query_result_cached_video.type)60 assert inline_query_result_cached_video_dict['id'] == inline_query_result_cached_video.id61 assert (inline_query_result_cached_video_dict['video_file_id']62 == inline_query_result_cached_video.video_file_id)63 assert (inline_query_result_cached_video_dict['title']64 == inline_query_result_cached_video.title)65 assert (inline_query_result_cached_video_dict['description']66 == inline_query_result_cached_video.description)67 assert (inline_query_result_cached_video_dict['caption']68 == inline_query_result_cached_video.caption)69 assert (inline_query_result_cached_video_dict['parse_mode']70 == inline_query_result_cached_video.parse_mode)71 assert (inline_query_result_cached_video_dict['input_message_content']72 == inline_query_result_cached_video.input_message_content.to_dict())73 assert (inline_query_result_cached_video_dict['reply_markup']74 == inline_query_result_cached_video.reply_markup.to_dict())75 def test_equality(self):76 a = InlineQueryResultCachedVideo(self.id_, self.video_file_id, self.title)77 b = InlineQueryResultCachedVideo(self.id_, self.video_file_id, self.title)78 c = InlineQueryResultCachedVideo(self.id_, '', self.title)79 d = InlineQueryResultCachedVideo('', self.video_file_id, self.title)80 e = InlineQueryResultCachedVoice(self.id_, '', '')81 assert a == b82 assert hash(a) == hash(b)83 assert a is not b84 assert a == c85 assert hash(a) == hash(c)86 assert a != d87 assert hash(a) != hash(d)88 assert a != e...
tagsView.js
Source: tagsView.js
1const state = {2 visitedViews: [],3 cachedViews: []4}5const mutations = {6 ADD_VISITED_VIEW: (state, view) => {7 if (state.visitedViews.some(v => v.path === view.path)) return8 state.visitedViews.push(9 Object.assign({}, view, {10 title: view.meta.title || 'no-name'11 })12 )13 },14 ADD_CACHED_VIEW: (state, view) => {15 if (state.cachedViews.includes(view.name)) return16 if (!view.meta.noCache) {17 state.cachedViews.push(view.name)18 }19 },20 DEL_VISITED_VIEW: (state, view) => {21 for (const [i, v] of state.visitedViews.entries()) {22 if (v.path === view.path) {23 state.visitedViews.splice(i, 1)24 break25 }26 }27 },28 DEL_CACHED_VIEW: (state, view) => {29 const index = state.cachedViews.indexOf(view.name)30 index > -1 && state.cachedViews.splice(index, 1)31 },32 DEL_OTHERS_VISITED_VIEWS: (state, view) => {33 state.visitedViews = state.visitedViews.filter(v => {34 return v.meta.affix || v.path === view.path35 })36 },37 DEL_OTHERS_CACHED_VIEWS: (state, view) => {38 const index = state.cachedViews.indexOf(view.name)39 if (index > -1) {40 state.cachedViews = state.cachedViews.slice(index, index + 1)41 } else {42 // if index = -1, there is no cached tags43 state.cachedViews = []44 }45 },46 DEL_ALL_VISITED_VIEWS: state => {47 // keep affix tags48 const affixTags = state.visitedViews.filter(tag => tag.meta.affix)49 state.visitedViews = affixTags50 },51 DEL_ALL_CACHED_VIEWS: state => {52 state.cachedViews = []53 },54 UPDATE_VISITED_VIEW: (state, view) => {55 for (let v of state.visitedViews) {56 if (v.path === view.path) {57 v = Object.assign(v, view)58 break59 }60 }61 }62}63const actions = {64 addView({ dispatch }, view) {65 dispatch('addVisitedView', view)66 dispatch('addCachedView', view)67 },68 addVisitedView({ commit }, view) {69 commit('ADD_VISITED_VIEW', view)70 },71 addCachedView({ commit }, view) {72 commit('ADD_CACHED_VIEW', view)73 },74 delView({ dispatch, state }, view) {75 return new Promise(resolve => {76 dispatch('delVisitedView', view)77 dispatch('delCachedView', view)78 resolve({79 visitedViews: [...state.visitedViews],80 cachedViews: [...state.cachedViews]81 })82 })83 },84 delVisitedView({ commit, state }, view) {85 return new Promise(resolve => {86 commit('DEL_VISITED_VIEW', view)87 resolve([...state.visitedViews])88 })89 },90 delCachedView({ commit, state }, view) {91 return new Promise(resolve => {92 commit('DEL_CACHED_VIEW', view)93 resolve([...state.cachedViews])94 })95 },96 delOthersViews({ dispatch, state }, view) {97 return new Promise(resolve => {98 dispatch('delOthersVisitedViews', view)99 dispatch('delOthersCachedViews', view)100 resolve({101 visitedViews: [...state.visitedViews],102 cachedViews: [...state.cachedViews]103 })104 })105 },106 delOthersVisitedViews({ commit, state }, view) {107 return new Promise(resolve => {108 commit('DEL_OTHERS_VISITED_VIEWS', view)109 resolve([...state.visitedViews])110 })111 },112 delOthersCachedViews({ commit, state }, view) {113 return new Promise(resolve => {114 commit('DEL_OTHERS_CACHED_VIEWS', view)115 resolve([...state.cachedViews])116 })117 },118 delAllViews({ dispatch, state }, view) {119 return new Promise(resolve => {120 dispatch('delAllVisitedViews', view)121 dispatch('delAllCachedViews', view)122 resolve({123 visitedViews: [...state.visitedViews],124 cachedViews: [...state.cachedViews]125 })126 })127 },128 delAllVisitedViews({ commit, state }) {129 return new Promise(resolve => {130 commit('DEL_ALL_VISITED_VIEWS')131 resolve([...state.visitedViews])132 })133 },134 delAllCachedViews({ commit, state }) {135 return new Promise(resolve => {136 commit('DEL_ALL_CACHED_VIEWS')137 resolve([...state.cachedViews])138 })139 },140 updateVisitedView({ commit }, view) {141 commit('UPDATE_VISITED_VIEW', view)142 }143}144export default {145 namespaced: true,146 state,147 mutations,148 actions...
CRDataCache.py
Source: CRDataCache.py
1from direct.distributed.CachedDOData import CachedDOData2# This has to be imported for __builtin__.config3from direct.showbase import ShowBase4__all__ = ["CRDataCache"]5class CRDataCache:6 # Stores cached data for DistributedObjects between instantiations on the client7 def __init__(self):8 self._doId2name2data = {}9 # maximum # of objects we will cache data for10 self._size = config.GetInt('crdatacache-size', 10)11 assert self._size > 012 # used to preserve the cache size13 self._junkIndex = 014 def destroy(self):15 del self._doId2name2data16 def setCachedData(self, doId, name, data):17 # stores a set of named data for a DistributedObject18 assert isinstance(data, CachedDOData)19 if len(self._doId2name2data) >= self._size:20 # cache is full, throw out a random doId's data21 if self._junkIndex >= len(self._doId2name2data):22 self._junkIndex = 023 junkDoId = self._doId2name2data.keys()[self._junkIndex]24 self._junkIndex += 125 for name in self._doId2name2data[junkDoId]:26 self._doId2name2data[junkDoId][name].flush()27 del self._doId2name2data[junkDoId]28 self._doId2name2data.setdefault(doId, {})29 cachedData = self._doId2name2data[doId].get(name)30 if cachedData:31 cachedData.flush()32 cachedData.destroy()33 self._doId2name2data[doId][name] = data34 def hasCachedData(self, doId):35 return doId in self._doId2name2data36 def popCachedData(self, doId):37 # retrieves all cached data for a DistributedObject and removes it from the cache38 data = self._doId2name2data[doId]39 del self._doId2name2data[doId]40 return data41 def flush(self):42 # get rid of all cached data43 for doId in self._doId2name2data:44 for name in self._doId2name2data[doId]:45 self._doId2name2data[doId][name].flush()46 self._doId2name2data = {}47 if __debug__:48 def _startMemLeakCheck(self):49 self._len = len(self._doId2name2data)50 def _stopMemLeakCheck(self):51 del self._len52 def _checkMemLeaks(self):53 assert self._len == len(self._doId2name2data)54if __debug__:55 class TestCachedData(CachedDOData):56 def __init__(self):57 CachedDOData.__init__(self)58 self._destroyed = False59 self._flushed = False60 def destroy(self):61 CachedDOData.destroy(self)62 self._destroyed = True63 def flush(self):64 CachedDOData.flush(self)65 self._flushed = True66 dc = CRDataCache()67 dc._startMemLeakCheck()68 cd = CachedDOData()69 cd.foo = 3470 dc.setCachedData(1, 'testCachedData', cd)71 del cd72 cd = CachedDOData()73 cd.bar = 4574 dc.setCachedData(1, 'testCachedData2', cd)75 del cd76 assert dc.hasCachedData(1)77 assert dc.hasCachedData(1)78 assert not dc.hasCachedData(2)79 # data is dict of dataName->data80 data = dc.popCachedData(1)81 assert len(data) == 282 assert 'testCachedData' in data83 assert 'testCachedData2' in data84 assert data['testCachedData'].foo == 3485 assert data['testCachedData2'].bar == 4586 for cd in data.itervalues():87 cd.flush()88 del data89 dc._checkMemLeaks()90 cd = CachedDOData()91 cd.bar = 123492 dc.setCachedData(43, 'testCachedData2', cd)93 del cd94 assert dc.hasCachedData(43)95 dc.flush()96 dc._checkMemLeaks()97 dc._stopMemLeakCheck()98 dc.destroy()99 del dc...
utils.py
Source: utils.py
1def in_cache(cache_store:dict, cached_arg_num=0, cached_arg_name=None):2 def get_decorator(cached_func):3 def calling_func(*args, **kwargs):4 if cached_arg_name is not None and cached_arg_name in kwargs:5 cached_var = kwargs[cached_arg_name]6 else:7 cached_var = args[cached_arg_num]8 if cached_var is not None and cached_var in cache_store:9 return cache_store[cached_var]10 func_data = cached_func(*args, **kwargs)11 if func_data is not None and cached_var is not None:12 cache_store[cached_var] = func_data13 return func_data14 return calling_func...
Using AI Code Generation
1const { chromium } = require('playwright-internal');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})();9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch();12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.screenshot({ path: `example.png` });15 await browser.close();16})();17const { chromium } = require('playwright-internal');18(async () => {19 const browser = await chromium.launch();20 const context = await browser.newContext();21 const page = await context.newPage();22 await page.screenshot({ path: `example.png` });23 await browser.close();24})();25const { chromium } = require('playwright');26(async () => {27 const browser = await chromium.launch();28 const context = await browser.newContext();29 const page = await context.newPage();30 await page.screenshot({ path: `example.png` });31 await browser.close();32})();33const { chromium } = require('playwright-internal');34(async () => {35 const browser = await chromium.launch();36 const context = await browser.newContext();37 const page = await context.newPage();38 await page.screenshot({ path: `example.png` });39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch();44 const context = await browser.newContext();45 const page = await context.newPage();46 await page.screenshot({ path: `example.png
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: `example.png` });7 await browser.close();8})();9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch({ headless: false });12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.screenshot({ path: `example.png` });15 await browser.close();16})();17const { chromium } = require('playwright');18(async () => {19 const browser = await chromium.launch({ headless: false });20 const context = await browser.newContext();21 const page = await context.newPage();22 await page.screenshot({ path: `example.png` });23 await browser.close();24})();25const { chromium } = require('playwright');26(async () => {27 const browser = await chromium.launch({ headless: false });28 const context = await browser.newContext();29 const page = await context.newPage();30 await page.screenshot({ path: `example.png` });31 await browser.close();32})();33const { chromium } = require('playwright');34(async () => {35 const browser = await chromium.launch({ headless: false });36 const context = await browser.newContext();37 const page = await context.newPage();38 await page.screenshot({ path: `example.png` });39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch({ headless: false });44 const context = await browser.newContext();45 const page = await context.newPage();46 await page.screenshot({ path: `example.png`
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: 'screenshot.png' });7 await browser.close();8})();9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch({ headless: false });12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.screenshot({ path: 'screenshot1.png' });15 await browser.close();16})();17const { chromium } = require('playwright');18(async () => {19 const browser = await chromium.launch({ headless: false });20 const context = await browser.newContext();21 const page = await context.newPage();22 await page.screenshot({ path: 'screenshot2.png' });23 await browser.close();24})();25const { chromium } = require('playwright');26(async () => {27 const browser = await chromium.launch({ headless: false });28 const context = await browser.newContext();29 const page = await context.newPage();30 await page.screenshot({ path: 'screenshot3.png' });31 await browser.close();32})();33const { chromium } = require('playwright');34(async () => {35 const browser = await chromium.launch({ headless: false });36 const context = await browser.newContext();37 const page = await context.newPage();38 await page.screenshot({ path: 'screenshot4.png' });39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch({ headless
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.screenshot({ path: `example.png` });7 await browser.close();8})();9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch({ headless: false });12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.screenshot({ path: `example.png` });15 await browser.close();16})();17const { chromium } = require('playwright');18(async () => {19 const browser = await chromium.launch({ headless: false });20 const context = await browser.newContext();21 const page = await context.newPage();22 await page.screenshot({ path: `example.png` });23 await browser.close();24})();25const { chromium } = require('playwright');26(async () => {27 const browser = await chromium.launch({ headless: false });28 const context = await browser.newContext();29 const page = await context.newPage();30 await page.screenshot({ path: `example.png` });31 await browser.close();32})();33const { chromium } = require('playwright');34(async () => {35 const browser = await chromium.launch({ headless: false });36 const context = await browser.newContext();37 const page = await context.newPage();38 await page.screenshot({ path: `example.png` });39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch({ headless: false });
Using AI Code Generation
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})();9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch();12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.screenshot({ path: 'example.png' });15 await browser.close();16})();17const { chromium } = require('playwright');18(async () => {19 const browser = await chromium.launch();20 const context = await browser.newContext();21 const page = await context.newPage();22 await page.screenshot({ path: 'example.png' });23 await browser.close();24})();25const { chromium } = require('playwright');26(async () => {27 const browser = await chromium.launch();28 const context = await browser.newContext();29 const page = await context.newPage();30 await page.screenshot({ path: 'example.png' });31 await browser.close();32})();33const { chromium } = require('playwright');34(async () => {35 const browser = await chromium.launch();36 const context = await browser.newContext();37 const page = await context.newPage();38 await page.screenshot({ path: 'example.png' });39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch();44 const context = await browser.newContext();45 const page = await context.newPage();46 await page.screenshot({ path
Using AI Code Generation
1const { chromium } = require('playwright-internal');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page.screenshot({ path: 'example.png' });6 await browser.close();7})();8const { chromium } = require('playwright');9(async () => {10 const browser = await chromium.launch();11 const page = await browser.newPage();12 await page.screenshot({ path: 'example.png' });13 await browser.close();14})();
Using AI Code Generation
1const { chromium } = require('playwright-internal');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 await page.screenshot({ path: `example.png` });6 await browser.close();7})();8const { chromium } = require('playwright');9(async () => {10 const browser = await chromium.launch();11 const page = await browser.newPage();12 await page.screenshot({ path: `example.png` });13 await browser.close();14})();15const { chromium } = require('playwright');16(async () => {17 const browser = await chromium.launch();18 const page = await browser.newPage();19 await page.screenshot({ path: `example.png` });20 await browser.close();21})();22const { chromium } = require('playwright');23(async () => {24 const browser = await chromium.launch();25 const page = await browser.newPage();26 await page.screenshot({ path: `example.png` });27 await browser.close();28})();29const { chromium } = require('playwright');30(async () => {31 const browser = await chromium.launch();32 const page = await browser.newPage();33 await page.screenshot({ path: `example.png` });34 await browser.close();35})();
Using AI Code Generation
1const { chromium } = require('playwright');2const browser = await chromium.launch();3const context = await browser.newContext();4const page = await context.newPage();5await page.screenshot({ path: 'example.png' });6await browser.close();7const { chromium } = require('playwright');8const browser = await chromium.launch();9const context = await browser.newContext();10const page = await context.newPage();11await page.screenshot({ path: 'example.png' });12await browser.close();13const { chromium } = require('playwright');14const browser = await chromium.launch();15const context = await browser.newContext();16const page = await context.newPage();17await page.screenshot({ path: 'example.png' });18await browser.close();19const { chromium } = require('playwright');20const browser = await chromium.launch();21const context = await browser.newContext();22const page = await context.newPage();23await page.screenshot({ path: 'example.png' });24await browser.close();25const { chromium } = require('playwright');26const browser = await chromium.launch();27const context = await browser.newContext();28const page = await context.newPage();29await page.screenshot({ path: 'example.png' });30await browser.close();31const { chromium } = require('playwright');32const browser = await chromium.launch();33const context = await browser.newContext();34const page = await context.newPage();35await page.screenshot({ path: 'example.png' });36await browser.close();37const { chromium } = require('playwright');38const browser = await chromium.launch();39const context = await browser.newContext();40const page = await context.newPage();41await page.screenshot({ path: 'example.png' });42await browser.close();
Using AI Code Generation
1const path = require('path');2const playwright = require('playwright-internal');3(async () => {4 const browser = await playwright.chromium.launch({5 `--user-data-dir=${path.join(__dirname, 'user_data')}`,6 '--disable-extensions-except=' + path.join(__dirname, 'extension'),7 '--load-extension=' + path.join(__dirname, 'extension')8 });9 const page = await browser.newPage();10 await page.close();11 await browser.close();12})();13chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {14 if (request.type == 'getHtml') {15 sendResponse(document.documentElement.innerHTML);16 }17});
Jest + Playwright - Test callbacks of event-based DOM library
firefox browser does not start in playwright
Is it possible to get the selector from a locator object in playwright?
How to run a list of test suites in a single file concurrently in jest?
Running Playwright in Azure Function
firefox browser does not start in playwright
This question is quite close to a "need more focus" question. But let's try to give it some focus:
Does Playwright has access to the cPicker object on the page? Does it has access to the window object?
Yes, you can access both cPicker and the window object inside an evaluate call.
Should I trigger the events from the HTML file itself, and in the callbacks, print in the DOM the result, in some dummy-element, and then infer from that dummy element text that the callbacks fired?
Exactly, or you can assign values to a javascript variable:
const cPicker = new ColorPicker({
onClickOutside(e){
},
onInput(color){
window['color'] = color;
},
onChange(color){
window['result'] = color;
}
})
And then
it('Should call all callbacks with correct arguments', async() => {
await page.goto(`http://localhost:5000/tests/visual/basic.html`, {waitUntil:'load'})
// Wait until the next frame
await page.evaluate(() => new Promise(requestAnimationFrame))
// Act
// Assert
const result = await page.evaluate(() => window['color']);
// Check the value
})
Check out the latest blogs from LambdaTest on this topic:
Native apps are developed specifically for one platform. Hence they are fast and deliver superior performance. They can be downloaded from various app stores and are not accessible through browsers.
One of the essential parts when performing automated UI testing, whether using Selenium or another framework, is identifying the correct web elements the tests will interact with. However, if the web elements are not located correctly, you might get NoSuchElementException in Selenium. This would cause a false negative result because we won’t get to the actual functionality check. Instead, our test will fail simply because it failed to interact with the correct element.
Smartphones have changed the way humans interact with technology. Be it travel, fitness, lifestyle, video games, or even services, it’s all just a few touches away (quite literally so). We only need to look at the growing throngs of smartphone or tablet users vs. desktop users to grasp this reality.
As part of one of my consulting efforts, I worked with a mid-sized company that was looking to move toward a more agile manner of developing software. As with any shift in work style, there is some bewilderment and, for some, considerable anxiety. People are being challenged to leave their comfort zones and embrace a continuously changing, dynamic working environment. And, dare I say it, testing may be the most ‘disturbed’ of the software roles in agile development.
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.
Get 100 minutes of automation test minutes FREE!!