testcafe
Version:
Automated browser testing for the modern web development stack.
1 lines • 39 kB
JavaScript
!function S(D){var U=D.document;!function(l){"use strict";var h,f,s,p,m,a={".js":[],".json":[],".css":[],".html":[]},u="function"==typeof require?require:null;return p=function(t){var e=new Error("Could not find module '"+t+"'");return e.code="MODULE_NOT_FOUND",e},m=function(t,e,i){var n,s;if("function"==typeof t[e+i])return e+i;for(n=0;s=a[i][n];++n)if("function"==typeof t[e+s])return e+s;return null},h=function(t,e,i,n,s,a){var o,r,l,u,d,c;for("."!==(o=(i=i.split(/[\\/]/)).pop())&&".."!==o||(i.push(o),o="");null!=(r=i.shift());)if(r&&"."!==r&&(".."===r?(t=e.pop(),a=a.slice(0,a.lastIndexOf("/"))):(e.push(t),t=t[r],a+="/"+r),!t))throw p(n);if(o&&"function"!=typeof t[o]&&((c=(c=(c=(c=m(t,o,".js"))||m(t,o,".json"))||m(t,o,".css"))||m(t,o,".html"))?o=c:2!==s&&"object"==typeof t[o]&&(e.push(t),t=t[o],a+="/"+o,o="")),!o)return 1!==s&&t[":mainpath:"]?h(t,e,t[":mainpath:"],n,1,a):h(t,e,"index",n,2,a);if(!(d=t[o]))throw p(n);return d.hasOwnProperty("module")?d.module.exports:(l={},d.module=u={exports:l,id:a+"/"+o},d.call(l,l,u,f(t,e,a)),u.exports)},s=function(t,e,i,n){var s,a=i,o=i.charAt(0),r=0;if("/"===o){if(a=a.slice(1),!(t=l["/"])){if(u)return u(i);throw p(i)}n="/",e=[]}else if("."!==o){if(s=a.split("/",1)[0],!(t=l[s])){if(u)return u(i);throw p(i)}n=s,e=[],(a=a.slice(s.length+1))||(r=(a=t[":mainpath:"])?1:(a="index",2))}return h(t,e,a,i,r,n)},(f=function(e,i,n){return function(t){return s(e,[].concat(i),t,n)}})(l,[],"")}({"testcafe-release":{src:{client:{ui:{cursor:{"iframe-cursor.js":function(t,e,i){t.__esModule=!0;var n=o(i("../deps/hammerhead")),s=i("../deps/testcafe-core"),a=o(i("./messages"));function o(t){return t&&t.__esModule?t:{default:t}}var r=n.default.utils.browser.isIE?1:0;t.default={move:function(t,e){var i={cmd:a.default.moveRequest,x:t+r,y:e+r};return(0,s.sendRequestToFrame)(i,a.default.moveResponse,D.parent)},leftButtonDown:function(){return(0,s.sendRequestToFrame)({cmd:a.default.leftButtonDownRequest},a.default.leftButtonDownResponse,D.parent)},rightButtonDown:function(){return(0,s.sendRequestToFrame)({cmd:a.default.rightButtonDownRequest},a.default.rightButtonDownResponse,D.parent)},buttonUp:function(){return(0,s.sendRequestToFrame)({cmd:a.default.buttonUpRequest},a.default.buttonUpResponse,D.parent)}},e.exports=t.default},"index.js":function(t,e,i){t.__esModule=!0;var n=r(i("./../deps/hammerhead")),s=r(i("./../deps/testcafe-core")),a=r(i("../ui-root")),o=r(i("./messages"));function r(t){return t&&t.__esModule?t:{default:t}}var l=n.default.Promise,u=n.default.shadowUI,d=n.default.utils.browser,c=n.default.utils.featureDetection,h=n.default.eventSandbox.message,f=s.default.styleUtils,p=s.default.positionUtils,m="l-mouse-down",g="r-mouse-down",v=[m,g].join(" ");h.on(h.SERVICE_MSG_RECEIVED_EVENT,function(t){var e=t.message,i=null;switch(e.cmd){case o.default.moveRequest:i=p.getIframePointRelativeToParentFrame({x:e.x,y:e.y},t.source),y.move(i.x,i.y).then(function(){return h.sendServiceMsg({cmd:o.default.moveResponse},t.source)});break;case o.default.leftButtonDownRequest:y.leftButtonDown().then(function(){return h.sendServiceMsg({cmd:o.default.leftButtonDownResponse},t.source)});break;case o.default.rightButtonDownRequest:y.rightButtonDown().then(function(){return h.sendServiceMsg({cmd:o.default.rightButtonDownResponse},t.source)});break;case o.default.buttonUpRequest:y.buttonUp().then(function(){return h.sendServiceMsg({cmd:o.default.buttonUpResponse},t.source)})}});var y={cursorElement:null,x:50,y:50,pointerOffsetX:0,pointerOffsetY:0,_createElement:function(){this.cursorElement=U.createElement("div"),u.addClass(this.cursorElement,"cursor"),c.isTouchDevice&&!d.isIE&&(u.addClass(this.cursorElement,"touch"),this.pointerOffsetX=Math.ceil(f.getWidth(this.cursorElement)/2),this.pointerOffsetY=Math.ceil(f.getHeight(this.cursorElement)/2)),a.default.element().appendChild(this.cursorElement)},isVisible:function(){return this.cursorElement&&"hidden"!==f.get(this.cursorElement,"visibility")},hide:function(){this.cursorElement||this._createElement(),f.set(this.cursorElement,"visibility","hidden")},show:function(){this.cursorElement||this._createElement(),f.set(this.cursorElement,"visibility","")},move:function(t,e){return this.x=t,this.y=e,this.cursorElement||this._createElement(),f.set(this.cursorElement,{left:this.x-this.pointerOffsetX+"px",top:this.y-this.pointerOffsetY+"px"}),l.resolve()},leftButtonDown:function(){return this.cursorElement||this._createElement(),u.removeClass(this.cursorElement,v),u.addClass(this.cursorElement,m),l.resolve()},rightButtonDown:function(){return this.cursorElement||this._createElement(),u.removeClass(this.cursorElement,v),u.addClass(this.cursorElement,g),l.resolve()},buttonUp:function(){return this.cursorElement||this._createElement(),u.removeClass(this.cursorElement,v),l.resolve()}};t.default=y,e.exports=t.default},"messages.js":function(t,e,i){t.__esModule=!0,t.default={moveRequest:"ui|cursor|move|request",leftButtonDownRequest:"ui|cursor|leftbuttondown|request",rightButtonDownRequest:"ui|cursor|rightbuttondown|request",buttonUpRequest:"ui|cursor|buttonup|request",moveResponse:"ui|cursor|move|response",leftButtonDownResponse:"ui|cursor|leftbuttondown|response",rightButtonDownResponse:"ui|cursor|rightbuttondown|response",buttonUpResponse:"ui|cursor|buttonup|response"},e.exports=t.default}},deps:{"hammerhead.js":function(t,e,i){t.__esModule=!0,t.default=D["%hammerhead%"],e.exports=t.default},"testcafe-core.js":function(t,e,i){t.__esModule=!0,t.default=D["%testCafeCore%"],e.exports=t.default}},"index.js":function(t,e,i){var n=m(i("./deps/hammerhead")),s=m(i("./deps/testcafe-core")),a=p(i("./select-element")),o=p(i("./modal-background")),r=m(i("./progress-panel")),l=m(i("./status-bar")),u=m(i("./status-bar/iframe-status-bar")),d=m(i("./cursor")),c=p(i("./cursor/iframe-cursor")),h=m(i("./screenshot-mark")),f=m(i("./ui-root"));function p(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e.default=t,e}function m(t){return t&&t.__esModule?t:{default:t}}var g=n.default.Promise,v=n.default.eventSandbox.message,y=s.default.sendRequestToFrame,_="ui|hide|request",w="ui|hide|response",E="ui|show|request",C="ui|show|response";v.on(v.SERVICE_MSG_RECEIVED_EVENT,function(t){t.message.cmd===_?(f.default.hide(),v.sendServiceMsg({cmd:w},t.source)):t.message.cmd===E&&(f.default.show(),v.sendServiceMsg({cmd:C},t.source))}),t.cursorUI=d.default,t.iframeCursorUI=c,t.selectElement=a,t.modalBackground=o,t.ProgressPanel=r.default,t.StatusBar=l.default,t.IframeStatusBar=u.default,t.get=i,t.hide=function(t){return t?y({cmd:_},w,D.top):(f.default.hide(),g.resolve())},t.show=function(t){return t?y({cmd:E},C,D.top):(f.default.show(),g.resolve())},t.showScreenshotMark=function(t){return h.default.show(t)},t.hideScreenshotMark=function(){return h.default.hide()};var x=n.default.nativeMethods,b=n.default.EVENTS.evalIframeScript;x.objectDefineProperty(D,"%testCafeUI%",{configurable:!0,value:t}),n.default.on(b,function(t){return S(x.contentWindowGetter.call(t.iframe))})},"modal-background.js":function(t,e,i){t.__esModule=!0,t.initAndShowLoadingText=function(){function e(){y(),a.styleUtils.set(p,"opacity",h),a.styleUtils.set(p,"display","block"),a.styleUtils.set(m,"display","block"),i=!0}var i=!1;(function t(){i||(U.body?e():s.nativeMethods.setTimeout.call(D,t,0))})(),a.eventUtils.documentReady().then(function(){i||e()})},t.show=function(t){v||y(),a.styleUtils.set(p,"opacity",t?0:c),a.styleUtils.set(p,"display","block")},t.hide=function(){v&&(a.styleUtils.set(m,"display","none"),a.styleUtils.set(p,"display","none"))},t.showLoadingIcon=function(){a.styleUtils.set(g,"visibility","visible")},t.hideLoadingIcon=function(){a.styleUtils.set(g,"visibility","hidden")};var n,s=i("./deps/hammerhead"),a=i("./deps/testcafe-core"),o=i("./ui-root"),r=(n=o)&&n.__esModule?n:{default:n},l="Loading page...",u="modal-background",d="loading-text",c=.7,h=.8,f="loading-icon",p=null,m=null,g=null,v=!1;function y(){!function(){var t=r.default.element();p=U.createElement("div"),t.appendChild(p),s.shadowUI.addClass(p,u),m=U.createElement("div"),s.nativeMethods.nodeTextContentSetter.call(m,l),t.appendChild(m),s.shadowUI.addClass(m,d),g=U.createElement("div"),a.styleUtils.set(g,"visibility","hidden"),t.appendChild(g),s.shadowUI.addClass(g,f)}(),function(){function t(){var t=a.styleUtils.getHeight(D),e=a.styleUtils.getWidth(D);a.styleUtils.set(p,"width",e+"px"),a.styleUtils.set(p,"height",t+"px"),a.styleUtils.set(g,{left:Math.round((e-a.styleUtils.getWidth(g))/2)+"px",top:Math.round((t-a.styleUtils.getHeight(g))/2)+"px"})}t(),a.eventUtils.bind(D,"resize",t)}(),function(){var t=a.styleUtils.getHeight(D),e=a.styleUtils.getWidth(D),i=!a.styleUtils.hasDimensions(m);i&&(a.styleUtils.set(m,"visibility","hidden"),a.styleUtils.set(m,"display","block")),a.styleUtils.set(m,{left:Math.max((e-a.styleUtils.getWidth(m))/2,0)+"px",top:Math.max((t-a.styleUtils.getHeight(m))/2,0)+"px"}),i&&(a.styleUtils.set(m,"display","none"),a.styleUtils.set(m,"visibility",""))}(),v=!0}},"progress-panel":{"index.js":function(t,e,i){t.__esModule=!0;var n=r(i("../deps/hammerhead")),s=r(i("../deps/testcafe-core")),a=r(i("./progress-bar")),o=r(i("../ui-root"));function r(t){return t&&t.__esModule?t:{default:t}}var l=n.default.shadowUI,d=n.default.nativeMethods,u=s.default.eventUtils,c=s.default.styleUtils,h=(f._getInvisibleElementProperty=function(t,e){var i="none"===c.get(t,"display");i&&c.set(t,"display","block");var n=t[e];return i&&c.set(t,"display","none"),n},f._showAtWindowCenter=function(t){var e=f._getInvisibleElementProperty(t,"offsetHeight"),i=f._getInvisibleElementProperty(t,"offsetWidth"),n=Math.round(c.getHeight(D)/2-e/2),s=Math.round(c.getWidth(D)/2-i/2);c.set(t,{left:s+"px",top:n+"px"})},f.prototype._setCurrentProgress=function(){var t=Math.round((Date.now()-this.startTime)/this.maxTimeout*100);this.progressBar.setValue(t)},f.prototype._setSuccess=function(t){this.progressBar.setSuccess(t)},f.prototype._stopAnimation=function(){d.clearInterval.call(D,this.animationInterval)},f.prototype._animate=function(t,e,i,n){var s=this,a=Date.now(),o=i?0:1,r=0,l=0,u=0;i&&(c.set(t,"opacity",o),c.set(t,"display","block")),this._stopAnimation(),this.animationInterval=d.setInterval.call(D,function(){r=Date.now()-a,l=Math.min(r/e,1),u=.5-Math.cos(l*Math.PI)/2,c.set(t,"opacity",o+(i?u:-u)),1===l&&(s._stopAnimation(),n&&n())},10)},f.prototype._showPanel=function(){u.bind(D,"resize",this.disposePanel),this._animate(this.panelDiv,200,!0)},f.prototype._hidePanel=function(t){var e=this;this.startTime=null,u.unbind(D,"resize",this.disposePanel),this._animate(this.panelDiv,t?0:600,!1,function(){return c.set(e.panelDiv,"display","none")})},f.prototype.show=function(t,e){var i=this;this.startTime=Date.now(),this.maxTimeout=e,d.nodeTextContentSetter.call(this.titleDiv,t),this._setSuccess(!1),this.openingTimeout=d.setTimeout.call(D,function(){i.openingTimeout=null,i._setCurrentProgress(),i._showPanel(),i.updateInterval=d.setInterval.call(D,function(){return i._setCurrentProgress()},100)},300)},f.prototype.close=function(t){var e=this;t&&this._setSuccess(!0),this.openingTimeout&&(d.clearTimeout.call(D,this.openingTimeout),this.openingTimeout=null),this.updateInterval&&(d.clearInterval.call(D,this.updateInterval),this.updateInterval=null),t?this.startTime&&Date.now()-this.startTime<1e3?d.setTimeout.call(D,function(){d.setTimeout.call(D,function(){return e._hidePanel(!1)},200)},100):d.setTimeout.call(D,function(){return e._hidePanel(!1)},200):this._hidePanel(!0)},f);function f(){var t=this;!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,f),this.startTime=null,this.openingTimeout=null,this.updateInterval=null,this.animationInterval=null,this.panelDiv=U.createElement("div"),o.default.element().appendChild(this.panelDiv),this.titleDiv=U.createElement("div"),this.panelDiv.appendChild(this.titleDiv),this.contentDiv=U.createElement("div"),this.panelDiv.appendChild(this.contentDiv),l.addClass(this.panelDiv,"progress-panel"),l.addClass(this.titleDiv,"title"),l.addClass(this.contentDiv,"content"),f._showAtWindowCenter(this.panelDiv),this.progressBar=new a.default(this.contentDiv),this.disposePanel=function(){return f._showAtWindowCenter(t.panelDiv)}}t.default=h,e.exports=t.default},"progress-bar.js":function(t,e,i){t.__esModule=!0;var n=a(i("../deps/hammerhead")),s=a(i("../deps/testcafe-core"));function a(t){return t&&t.__esModule?t:{default:t}}var o=n.default.shadowUI,r=s.default.styleUtils,l="success",u=(d.prototype.setValue=function(t){t="number"!=typeof t?0:Math.min(Math.max(t,0),100),r.set(this.valueElement,"width",t+"%")},d.prototype.setSuccess=function(t){t?o.addClass(this.containerElement,l):o.removeClass(this.containerElement,l)},d);function d(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,d),this.containerElement=U.createElement("div"),this.valueElement=U.createElement("div"),t.appendChild(this.containerElement),this.containerElement.appendChild(this.valueElement),o.addClass(this.containerElement,"progress-bar"),o.addClass(this.valueElement,"value")}t.default=u,e.exports=t.default}},"screenshot-mark.js":function(t,e,i){t.__esModule=!0;var n=i("./deps/hammerhead"),s=i("../../screenshots/constants");t.default={screenshotMark:null,_createMark:function(){this.screenshotMark=U.createElement("img"),n.shadowUI.addClass(this.screenshotMark,"screenshot-mark"),this.screenshotMark.style.right=s.MARK_RIGHT_MARGIN/D.devicePixelRatio+"px",this.screenshotMark.style.width=s.MARK_LENGTH/D.devicePixelRatio+"px",this.screenshotMark.style.height=s.MARK_HEIGHT/D.devicePixelRatio+"px",this.hide(),n.shadowUI.getRoot().appendChild(this.screenshotMark)},hide:function(){this.screenshotMark&&(this.screenshotMark.style.visibility="hidden")},show:function(t){this.screenshotMark||this._createMark(),n.nativeMethods.imageSrcSetter.call(this.screenshotMark,t),this.screenshotMark.style.visibility=""}},e.exports=t.default},"select-element.js":function(t,e,i){t.__esModule=!0,t.expandOptionList=function(t){var e=t.children;if(e.length){if(x){var i=t===x;if(R(),i)return}x=t,b=U.createElement("div"),r.default.element().appendChild(b),c.addClass(b,y),B(e,b),l.addInternalEventListener(D,["click"],T),h.setTimeout.call(D,function(){g.bind(U,"mousedown",M)},0),m.set(b,{position:"absolute",fontSize:m.get(x,"fontSize"),fontFamily:m.get(x,"fontFamily"),minWidth:m.getWidth(x)+"px",left:f.getOffsetPosition(x).left+"px",height:p.getSelectVisibleChildren(t).length>C?m.getOptionHeight(t)*C:""});var n=f.getOffsetPosition(x).top,s=m.getHeight(b),a=n+m.getHeight(x)+2;if(a+s>m.getScrollTop(D)+m.getHeight(D)){var o=n-3-s;o>=m.getScrollTop(D)&&(a=o)}m.set(b,"top",a+"px")}},t.collapseOptionList=R,t.isOptionListExpanded=A,t.getEmulatedChildElement=function(t){var e="optgroup"===p.getTagName(t),i=p.getElementIndexInParent(x,t);return e?S[i]:I[i]},t.scrollOptionListByChild=function(t){var e=p.getSelectParent(t);if(e){var i=m.getSelectElementSize(e),n=m.getOptionHeight(e),s=0,a=Math.max(m.getScrollTop(e)/n,0),o=a+i-1,r=p.getChildVisibleIndex(e,t);r<a?(s=n*(a-r),m.setScrollTop(e,Math.max(m.getScrollTop(e)-s,0))):o<r&&(s=n*(r-o),m.setScrollTop(e,m.getScrollTop(e)+s))}},t.getSelectChildCenter=function(t){var e=p.getSelectParent(t);if(!e)return{x:0,y:0};var i=m.getOptionHeight(e),n=f.getElementRectangle(t);return{x:Math.round(n.left+n.width/2),y:Math.round(n.top+i/2)}},t.switchOptionsByKeys=function(t,e){var i=m.getSelectElementSize(t),n=!m.hasDimensions(c.select("."+y)[0]);if(/down|up/.test(e)||!u.isIE&&(i<=1||u.isFirefox)&&(n||u.isFirefox)&&/left|right/.test(e)){for(var s=t.querySelectorAll("option"),a=[],o=0;o<s.length;o++){var r=s[o].parentElement;s[o].disabled||"optgroup"===p.getTagName(r)&&r.disabled||a.push(s[o])}var l=v.indexOf(a,s[t.selectedIndex])+(/down|right/.test(e)?1:-1);0<=l&&l<a.length&&(t.selectedIndex=v.indexOf(s,a[l]),u.isIE||d.input(t),d.change(t))}},t.isOptionElementVisible=function(t){var e=p.getSelectParent(t);if(!e)return!0;var i=A(e),n=m.getSelectElementSize(e);return i||1<n};var n=a(i("./deps/hammerhead")),s=a(i("./deps/testcafe-core")),r=a(i("./ui-root"));function a(t){return t&&t.__esModule?t:{default:t}}var c=n.default.shadowUI,u=n.default.utils.browser,o=n.default.utils.featureDetection,h=n.default.nativeMethods,d=n.default.eventSandbox.eventSimulator,l=n.default.eventSandbox.listeners,f=s.default.positionUtils,p=s.default.domUtils,m=s.default.styleUtils,g=s.default.eventUtils,v=s.default.arrayUtils,y="tcOptionList",_="tcOptionGroup",w="tcOption",E="disabled",C=u.isIE?30:20,x=null,b=null,S=[],I=[];function M(t){(t.target||t.srcElement)===x||p.containsElement(x,t.target)||p.containsElement(b,t.target)||R()}function T(t,e,i){var n=v.indexOf(I,t.target);if(!(n<0)){i();var s=-1<t.target.className.indexOf(E);s&&u.isWebKit||function(t,e){var i=x.selectedIndex,n=x.getElementsByTagName("option")[t],s=!e&&t!==i;s&&!u.isIE&&(x.selectedIndex=t),u.isFirefox||u.isIE||!s||(d.input(x),d.change(x)),(u.isFirefox||u.isIE)&&d.mousedown(u.isFirefox?n:x),o.isTouchDevice||d.mouseup(u.isFirefox?n:x),(u.isFirefox||u.isIE)&&s&&(u.isIE&&(x.selectedIndex=t),u.isIE||d.input(x),d.change(x)),o.isTouchDevice||d.click(u.isFirefox||u.isIE?n:x),e||R()}(n,s)}}function B(t,e){for(var i,n,s,a,o,r,l,u=p.getChildrenLength(t),d=0;d<u;d++)p.isOptionElement(t[d])?(a=t[d],o=e,r=U.createElement("div"),l=a.disabled||"optgroup"===p.getTagName(a.parentElement)&&a.parentElement.disabled,h.nodeTextContentSetter.call(r,a.text),o.appendChild(r),c.addClass(r,w),l&&(c.addClass(r,E),m.set(r,"color",m.get(a,"color"))),I.push(r)):"optgroup"===p.getTagName(t[d])&&(i=t[d],n=e,s=U.createElement("div"),h.nodeTextContentSetter.call(s,i.label||" "),n.appendChild(s),c.addClass(s,_),s.disabled&&(c.addClass(s,E),m.set(s,"color",m.get(i,"color"))),B(i.children,s),S.push(s))}function R(){p.remove(b),g.unbind(U,"mousedown",M),x=b=null,I=[],S=[]}function A(t){return t?t===x:!!x}},"status-bar":{"iframe-status-bar.js":function(t,e,i){t.__esModule=!0;var n=r(i("./../deps/hammerhead")),s=r(i("./../deps/testcafe-core")),a=r(i("./messages")),o=r(i("./index"));function r(t){return t&&t.__esModule?t:{default:t}}var l,u=s.default.sendRequestToFrame,d=n.default.eventSandbox.message,c=(function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(h,l=o.default),h.prototype.showWaitingElementStatus=function(t){d.sendServiceMsg({cmd:a.default.startWaitingElement,timeout:t},D.top)},h.prototype.hideWaitingElementStatus=function(t){var e={cmd:a.default.endWaitingElementRequest,waitingSuccess:t};return u(e,a.default.endWaitingElementResponse,D.top)},h.prototype.showWaitingAssertionRetriesStatus=function(t){d.sendServiceMsg({cmd:a.default.startWaitingAssertionRetries,timeout:t},D.top)},h.prototype.hideWaitingAssertionRetriesStatus=function(t){var e={cmd:a.default.endWaitingAssertionRetriesRequest,waitingSuccess:t};return u(e,a.default.endWaitingAssertionRetriesResponse,D.top)},h);function h(){return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,h),function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,l.call(this))}t.default=c,e.exports=t.default},"index.js":function(t,e,i){t.__esModule=!0;var n=l(i("./../deps/hammerhead")),s=l(i("./../deps/testcafe-core")),a=l(i("./progress-bar")),o=l(i("../ui-root")),r=l(i("./messages"));function l(t){return t&&t.__esModule?t:{default:t}}var u,d=n.default.Promise,c=n.default.shadowUI,h=n.default.nativeMethods,f=n.default.eventSandbox.message,p=n.default.utils.browser,m=n.default.utils.featureDetection,g=n.default.eventSandbox.listeners,v=s.default.styleUtils,y=s.default.eventUtils,_=s.default.domUtils,w=s.default.serviceUtils,E=s.default.arrayUtils,C="info-container",x="waiting-element-failed",b="waiting-element-success",S={all:{name:"show-all-elements",maxSize:1/0},hideFixture:{name:"hide-fixture",maxSize:940,className:"icon-status-view"},hideStatus:{name:"hide-status-debugging",maxSize:740,className:"icon-unlock-buttons-view"},hideUnlockArea:{name:"hide-unlock-area",maxSize:460,className:"icon-buttons-view"},onlyButtons:{name:"show-buttons-only",maxSize:330,className:"only-buttons-view"},onlyIconAndFixture:{name:"show-icon-fixture-only",maxSize:1/0,className:"only-icon-fixture-view"},onlyIcon:{name:"show-icon-only",maxSize:380,className:"only-icon-view"}},I=[S.onlyIcon,S.onlyIconAndFixture],M=[S.onlyIcon,S.hideFixture,S.all],T=[S.onlyButtons,S.hideUnlockArea,S.hideStatus,S.hideFixture,S.all],B=(function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(R,u=w.EventEmitter),R.prototype._createFixtureArea=function(){this.infoContainer=U.createElement("div"),c.addClass(this.infoContainer,C),c.addClass(this.infoContainer,C),this.container.appendChild(this.infoContainer),this.icon=U.createElement("div"),c.addClass(this.icon,"icon"),this.infoContainer.appendChild(this.icon),this.fixtureContainer=U.createElement("div"),c.addClass(this.fixtureContainer,"fixture-container"),this.infoContainer.appendChild(this.fixtureContainer);var t=U.createElement("div");h.nodeTextContentSetter.call(t,this.fixtureName+" - "+this.testName),c.addClass(t,"fixture"),this.fixtureContainer.appendChild(t);var e=U.createElement("div");h.nodeTextContentSetter.call(e,this.userAgent),c.addClass(e,"user-agent"),this.fixtureContainer.appendChild(e)},R.prototype._createUnlockPageArea=function(t){var e=this,i=U.createElement("div"),n=U.createElement("div"),s=U.createElement("div"),a=U.createElement("div"),o=U.createElement("span");return h.nodeTextContentSetter.call(o,"Unlock Page"),c.addClass(i,"unlock-page-area"),c.addClass(n,"unlock-page-container"),c.addClass(n,"locked"),c.addClass(s,"unlock-icon"),c.addClass(a,"icon-separator"),t.appendChild(i),i.appendChild(n),n.appendChild(s),n.appendChild(o),n.appendChild(a),this._bindClickOnce([n],function(){c.removeClass(n,"locked"),c.addClass(n,"unlocked"),h.nodeTextContentSetter.call(o,"Page unlocked"),e.emit(e.UNLOCK_PAGE_BTN_CLICK,{})}),i.style.display="none",i},R.prototype._createStatusArea=function(){var t=U.createElement("div");c.addClass(t,"status-container"),this.container.appendChild(t),this.statusDiv=U.createElement("div"),h.nodeTextContentSetter.call(this.statusDiv,"Loading Web Page..."),c.addClass(this.statusDiv,"status"),p.isMacPlatform&&(this.statusDiv.style.marginTop="11px"),t.appendChild(this.statusDiv),this.unlockPageArea=this._createUnlockPageArea(t),this.buttons=U.createElement("div"),c.addClass(this.buttons,"buttons"),t.appendChild(this.buttons),this.resumeButton=this._createButton("Resume","resume"),this.nextButton=this._createButton("Next Action","step"),this.finishButton=this._createButton("Finish","resume"),this.buttons.appendChild(this.resumeButton),this.buttons.appendChild(this.nextButton),this.buttons.style.display="none"},R.prototype._createButton=function(t,e){var i=U.createElement("div"),n=U.createElement("div"),s=U.createElement("span");return h.nodeTextContentSetter.call(s,t),c.addClass(i,"button"),c.addClass(i,e),c.addClass(n,"button-icon"),p.isSafari&&(s.style.position="relative",s.style.top="1px"),i.appendChild(n),i.appendChild(s),i},R.prototype._create=function(){this.statusBar=U.createElement("div"),this.container=U.createElement("div"),c.addClass(this.statusBar,"status-bar"),c.addClass(this.container,"container"),this.statusBar.appendChild(this.container),this._createFixtureArea(),this._createStatusArea(),this.progressBar=new a.default(this.statusBar),this.progressBar.indeterminateIndicator.start(),this.progressBar.show(),o.default.element().appendChild(this.statusBar),this._recalculateSizes(),this._bindHandlers(),this.state.created=!0},R.prototype._createBeforeReady=function(){var t=this;this.state.created||D!==D.top||(U.body?this._create():h.setTimeout.call(D,function(){return t._createBeforeReady()},0))},R.prototype._switchView=function(t){this.currentView&&this.currentView.name===t.name||(this.currentView&&this.currentView.className&&c.removeClass(this.statusBar,this.currentView.className),t.className&&c.addClass(this.statusBar,t.className),this.currentView=t)},R.prototype._getActualViewSequence=function(){return this.state.debugging?T:this.state.waiting?M:I},R.prototype._calculateActualView=function(i){return this._getActualViewSequence().reduce(function(t,e){return t.maxSize>=i?t:e})},R.prototype._setFixtureContainerWidth=function(){if("none"!==v.get(this.fixtureContainer,"display")){var t=v.getWidth(this.infoContainer),e=v.getWidth(this.icon),i=v.getElementMargin(this.icon),n=t-e-i.left-i.right-1;v.set(this.fixtureContainer,"width",n+"px")}},R.prototype._setStatusDivLeftMargin=function(){var t=h.nodeParentNodeGetter.call(this.statusDiv);if(t&&"none"!==v.get(t,"display")){var e="none"===v.get(this.statusDiv,"display"),i=v.getWidth(this.infoContainer),n=v.getWidth(this.container)/2-(e?0:v.getWidth(this.statusDiv))/2-i;this.state.debugging&&(n-=v.getWidth(this.buttons)/2,n-=v.getWidth(this.unlockPageArea)/2);var s=Math.max(Math.round(n),0)+"px";v.set(this.statusDiv,"marginLeft",e?0:s),v.set(t,"marginLeft",e?s:0)}},R.prototype._recalculateSizes=function(){var t=v.getWidth(D);this.windowHeight=v.getHeight(D),v.set(this.statusBar,"width",t+"px"),this._switchView(this._calculateActualView(t)),this._setFixtureContainerWidth(),this._setStatusDivLeftMargin()},R.prototype._animate=function(t){var e=this,i=Date.now(),n=parseInt(v.get(this.statusBar,"opacity"),10)||0,s=0,a=0,o=0;this._stopAnimation(),t&&(v.set(this.statusBar,"visibility",""),this.state.hidden=!1),this.animationInterval=h.setInterval.call(D,function(){s=Date.now()-i,a=Math.min(s/500,1),o=.5-Math.cos(a*Math.PI)/2,v.set(e.statusBar,"opacity",n+(t?o:-o)),1===a&&(e._stopAnimation(),t||(v.set(e.statusBar,"visibility","hidden"),e.state.hidden=!0),e.state.showing=!1,e.state.hiding=!1)},10)},R.prototype._stopAnimation=function(){this.animationInterval&&(h.clearInterval.call(D,this.animationInterval),this.animationInterval=null)},R.prototype._fadeOut=function(){this.state.hiding||this.state.debugging||(this.state.showing=!1,this.state.hiding=!0,this._animate())},R.prototype._fadeIn=function(){this.state.showing||this.state.debugging||(this.state.hiding=!1,this.state.showing=!0,this._animate(!0))},R.prototype._bindHandlers=function(){var e=this;g.initElementListening(D,["resize"]),g.addInternalEventListener(D,["resize"],function(){return e._recalculateSizes()});var i=v.getHeight(this.statusBar);g.addFirstInternalHandler(D,["mousemove","mouseout"],function(t){"mouseout"!==t.type||t.relatedTarget?"mousemove"===t.type&&(t.clientY>e.windowHeight-i?e._fadeOut(t):e.state.hidden&&e._fadeIn(t)):e._fadeIn(t)})},R.prototype._bindClickOnce=function(i,n){var s=this,a=m.isTouchDevice?"touchstart":"mousedown";g.addInternalEventListener(D,[a],function t(e){E.find(i,function(t){return _.containsElement(t,e.target)})?(y.preventDefault(e),g.removeInternalEventListener(D,[a],t),n(e)):_.containsElement(s.statusBar,e.target)&&y.preventDefault(e)})},R.prototype._initChildListening=function(){var i=this;f.on(f.SERVICE_MSG_RECEIVED_EVENT,function(t){var e=t.message;e.cmd===r.default.startWaitingElement?i.showWaitingElementStatus(e.timeout):e.cmd===r.default.endWaitingElementRequest?i.hideWaitingElementStatus(e.waitingSuccess).then(function(){return f.sendServiceMsg({cmd:r.default.endWaitingElementResponse},t.source)}):e.cmd===r.default.startWaitingAssertionRetries?i.showWaitingAssertionRetriesStatus(e.timeout):e.cmd===r.default.endWaitingAssertionRetriesRequest&&i.hideWaitingAssertionRetriesStatus(e.waitingSuccess).then(function(){return f.sendServiceMsg({cmd:r.default.endWaitingAssertionRetriesResponse},t.source)})})},R.prototype._resetState=function(){this.state.debugging=!1,this.buttons.style.display="none",this.unlockPageArea.style.display="none",h.nodeTextContentSetter.call(this.statusDiv,""),this.progressBar.hide(),this._recalculateSizes()},R.prototype._showWaitingStatus=function(){var t=this.state.assertionRetries?"Waiting for assertion execution...":"Waiting for element to appear...";h.nodeTextContentSetter.call(this.statusDiv,t),this._setStatusDivLeftMargin(),this._recalculateSizes(),this.progressBar.show()},R.prototype._hideWaitingStatus=function(e){var i=this;return new d(function(t){h.setTimeout.call(D,function(){i.state.waiting||i.state.debugging||(c.removeClass(i.statusBar,b),c.removeClass(i.statusBar,x),i.progressBar.determinateIndicator.reset(),i._resetState(),i._recalculateSizes()),t()},e?0:500)})},R.prototype._showDebuggingStatus=function(t){var n=this;return new d(function(i){n.state.debugging=!0,t?(n.buttons.removeChild(n.nextButton),n.buttons.removeChild(n.resumeButton),n.buttons.appendChild(n.finishButton),h.nodeTextContentSetter.call(n.statusDiv,"Test failed"),c.removeClass(n.statusBar,b),c.addClass(n.statusBar,x)):h.nodeTextContentSetter.call(n.statusDiv,"Debugging test..."),n.buttons.style.display="",n.unlockPageArea.style.display="",n._recalculateSizes(),n._bindClickOnce([n.resumeButton,n.nextButton,n.finishButton],function(t){var e=_.containsElement(n.nextButton,t.target);n._resetState(),i(e)})})},R.prototype._setWaitingStatus=function(t,e){var i=this;this.state.waiting=!0,this.progressBar.determinateIndicator.start(t,e),this.showingTimeout=h.setTimeout.call(D,function(){i.showingTimeout=null,i._showWaitingStatus()},300)},R.prototype._resetWaitingStatus=function(t){this.state.waiting=!1,this.progressBar.determinateIndicator.stop(),t?c.addClass(this.statusBar,b):c.addClass(this.statusBar,x);var e=this.showingTimeout&&t;return this.showingTimeout&&(h.clearTimeout.call(D,this.showingTimeout),this.showingTimeout=null,t||this._showWaitingStatus()),this._hideWaitingStatus(e)},R.prototype.hidePageLoadingStatus=function(){this.state.created||this._create(),this.progressBar.indeterminateIndicator.stop(),this._resetState()},R.prototype.showDebuggingStatus=function(t){return this._stopAnimation(),v.set(this.statusBar,"opacity",1),v.set(this.statusBar,"visibility",""),this.state.hiden=!1,this._showDebuggingStatus(t)},R.prototype.showWaitingElementStatus=function(t){this.state.assertionRetries||this._setWaitingStatus(t)},R.prototype.hideWaitingElementStatus=function(t){return this.state.assertionRetries?d.resolve():this._resetWaitingStatus(t)},R.prototype.showWaitingAssertionRetriesStatus=function(t,e){this.state.assertionRetries=!0,this._setWaitingStatus(t,e)},R.prototype.hideWaitingAssertionRetriesStatus=function(t){var e=this;return this._resetWaitingStatus(t).then(function(){e.state.assertionRetries=!1})},R);function R(t,e,i){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,R);var n=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}(this,u.call(this));return n.UNLOCK_PAGE_BTN_CLICK="testcafe|ui|status-bar|unlock-page-btn-click",n.userAgent=t,n.fixtureName=e,n.testName=i,n.statusBar=null,n.container=null,n.infoContainer=null,n.icon=null,n.fixtureContainer=null,n.resumeButton=null,n.finishButton=null,n.nextButton=null,n.statusDiv=null,n.buttons=null,n.progressBar=null,n.animationInterval=null,n.showingTimeout=null,n.windowHeight=U.documentElement?v.getHeight(D):D.innerHeight,n.state={created:!1,showing:!1,hiding:!1,debugging:!1,waiting:!1,assertionRetries:!1,hidden:!1},n.currentView=null,n._createBeforeReady(),n._initChildListening(),n}t.default=B,e.exports=t.default},"messages.js":function(t,e,i){t.__esModule=!0,t.default={startWaitingElement:"start-waiting-element",endWaitingElementRequest:"end-waiting-element-request",endWaitingElementResponse:"end-waiting-element-response",startWaitingAssertionRetries:"start-waiting-assertion-retries",endWaitingAssertionRetriesRequest:"end-waiting-assertion-retries-request",endWaitingAssertionRetriesResponse:"end-waiting-assertion-retries-response"},e.exports=t.default},"progress-bar":{"determinate-indicator.js":function(t,e,i){t.__esModule=!0;var n=a(i("../../deps/hammerhead")),s=a(i("../../deps/testcafe-core"));function a(t){return t&&t.__esModule?t:{default:t}}var o=n.default.shadowUI,r=n.default.nativeMethods,l=s.default.styleUtils,u="determinate",d=(c.prototype._setCurrentProgress=function(){var t=(Date.now()-this.startTime)/this.maxTimeout,e=Math.min(Math.max(t,0),1),i=l.getWidth(this.progressBar),n=Math.round(i*e);l.set(this.firstValueElement,"width",n+"px")},c.prototype.start=function(t,e){var i=this;o.addClass(this.progressBar,u),this.maxTimeout=t,this.startTime=e||Date.now(),this._setCurrentProgress(),this.animationInterval=r.setInterval.call(D,function(){return i._setCurrentProgress()},10)},c.prototype.stop=function(){this.animationInterval&&(r.clearInterval.call(D,this.animationInterval),this.animationInterval=null)},c.prototype.reset=function(){l.set(this.firstValueElement,"width",0),o.removeClass(this.progressBar,u)},c);function c(t,e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,c),this.progressBar=t,this.firstValueElement=e,this.maxTimeout=null,this.startTime=null,this.animationInterval=null}t.default=d,e.exports=t.default},"indeterminate-indicator.js":function(t,e,i){t.__esModule=!0;var n=a(i("../../deps/hammerhead")),s=a(i("../../deps/testcafe-core"));function a(t){return t&&t.__esModule?t:{default:t}}var o=n.default.shadowUI,r=n.default.nativeMethods,u=s.default.styleUtils,d=s.default.positionUtils,l={time:2800,points:[.815,.395],positionByCompletePercent:{0:{left:-35,right:100},.6:{left:100,right:-90},1:{left:100,right:-90}}},c={time:3e3,points:[.84,1],positionByCompletePercent:{0:{left:-200,right:100},.6:{left:107,right:-8},1:{left:107,right:-8}}},h=0,f=.6,p=1,m="indeterminate",g=(v._updateValueAnimation=function(t,e,i){var n=i.time,s=i.points,a=i.positionByCompletePercent,o=function(t,e){var i=t<f,n=i?h:f,s=i?f:p,a=e[n],o=e[s],r={x:n,y:a.left},l={x:s,y:o.left},u=d.getLineYByXCoord(r,l,t);return r={x:n,y:a.right},l={x:s,y:o.right},{left:u,right:d.getLineYByXCoord(r,l,t)}}(function(t,e,i){return 3*Math.pow(1-t,2)*t*e+3*(1-t)*t*t*i+t*t*t}((Date.now()-t)/n,s[0],s[1]),a),r=o.left,l=o.right;u.set(e,"left",Math.round(r)+"%"),u.set(e,"right",Math.round(l)+"%")},v.prototype._clearFirstValueAnimation=function(){this.animationInterval&&(r.clearInterval.call(D,this.animationInterval),this.animationInterval=null),u.set(this.firstValue,"left","-35%"),u.set(this.firstValue,"right","100%")},v.prototype._clearSecondValueAnimation=function(){this.secondValueAnimationInterval&&(r.clearInterval.call(D,this.secondValueAnimationInterval),this.secondValueAnimationInterval=null),u.set(this.secondValue,"left","-200%"),u.set(this.secondValue,"right","100%")},v.prototype._startFirstValueAnimation=function(){var t=this;this._clearFirstValueAnimation();var e=Date.now();this.animationInterval=r.setInterval.call(D,function(){v._updateValueAnimation(e,t.firstValue,l)},10)},v.prototype._startSecondValueAnimation=function(){var t=this;this._clearSecondValueAnimation();var e=Date.now();this.secondValueAnimationInterval=r.setInterval.call(D,function(){v._updateValueAnimation(e,t.secondValue,c)},10)},v.prototype._startAnimation=function(){var t=this;this._startFirstValueAnimation(),this.secondValueAnimationTimeout=r.setTimeout.call(D,function(){return t._startSecondValueAnimation()},1e3),this.restartAnimationTimeout=r.setTimeout.call(D,function(){return t._startAnimation()},1950)},v.prototype._stopAnimation=function(){this._clearFirstValueAnimation(),this._clearSecondValueAnimation(),this.secondValueAnimationTimeout&&(r.clearInterval.call(D,this.secondValueAnimationTimeout),this.secondValueAnimationTimeout=null),this.restartAnimationTimeout&&(r.clearInterval.call(D,this.restartAnimationTimeout),this.restartAnimationTimeout=null)},v.prototype.start=function(){o.addClass(this.progressBar,m),this._startAnimation()},v.prototype.stop=function(){o.removeClass(this.progressBar,m),this._stopAnimation()},v);function v(t,e,i){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,v),this.progressBar=t,this.firstValue=e,this.secondValue=i,this.animationInterval=null,this.secondValueAnimationInterval=null,this.secondValueAnimationTimeout=null,this.restartAnimationTimeout=null}t.default=g,e.exports=t.default},"index.js":function(t,e,i){t.__esModule=!0;var n=r(i("../../deps/hammerhead")),s=r(i("../../deps/testcafe-core")),a=r(i("./determinate-indicator")),o=r(i("./indeterminate-indicator"));function r(t){return t&&t.__esModule?t:{default:t}}var l=n.default.shadowUI,u=s.default.styleUtils,d=(c.prototype._create=function(t){this.progressBar=U.createElement("div"),l.addClass(this.progressBar,"progress-bar"),t.appendChild(this.progressBar);var e=U.createElement("div");l.addClass(e,"value-container"),this.progressBar.appendChild(e),this.firstValueElement=U.createElement("div"),l.addClass(this.firstValueElement,"value"),e.appendChild(this.firstValueElement),this.secondValueElement=U.createElement("div"),l.addClass(this.secondValueElement,"value"),e.appendChild(this.secondValueElement)},c.prototype.show=function(){u.set(this.progressBar,"visibility","visible")},c.prototype.hide=function(){u.set(this.progressBar,"visibility","hidden")},c);function c(t){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,c),this.progressBar=null,this.firstValueElement=null,this.secondValueElement=null,this._create(t),this.determinateIndicator=new a.default(this.progressBar,this.firstValueElement),this.indeterminateIndicator=new o.default(this.progressBar,this.firstValueElement,this.secondValueElement)}t.default=d,e.exports=t.default}}},"ui-root.js":function(t,e,i){t.__esModule=!0;var n=i("./deps/hammerhead");t.default={uiRoot:null,element:function(){return this.uiRoot||(this.uiRoot=U.createElement("div"),n.shadowUI.getRoot().appendChild(this.uiRoot)),this.uiRoot},hide:function(){this.uiRoot&&(this.uiRoot.style.visibility="hidden")},show:function(){this.uiRoot&&(this.uiRoot.style.visibility="")},remove:function(){var t=n.shadowUI.getRoot();n.nativeMethods.nodeParentNodeGetter.call(t).removeChild(t)}},e.exports=t.default}}},screenshots:{"constants.js":function(t,e,i){t.__esModule=!0,t.MARK_BYTES_PER_PIXEL=4,t.MARK_LENGTH=32,t.MARK_HEIGHT=10,t.MARK_RIGHT_MARGIN=10}}}}})("testcafe-release/src/client/ui/index")}(window);