sense-navigation
Version:
Sense Sheet Navigation + Actions visualization extension for Qlik Sense.
777 lines (744 loc) • 39.8 kB
HTML
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>sense-navigation</title>
<link href="https://fonts.googleapis.com/css?family=Roboto:400,700" rel="stylesheet" type="text/css">
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script>
$( document ).ready( function() {
function closeViewer () {
document.querySelector( ".image-viewer-container" ).className = "image-viewer-container";
setTimeout( function () {
document.querySelector( ".image-viewer-container" ).style.display = "none";
}, 200 );
}
function openViewer ( target ) {
document.querySelector( ".image-viewer-container" ).style.display = "flex";
setTimeout( function () {
document.querySelector( ".image-viewer-container" ).className = "image-viewer-container visible";
}, 0 );
var baseline = target.getAttribute( "data-baseline" );
var regression = target.getAttribute( "data-regression" );
var diff = target.getAttribute( "data-diff" );
var regressionTitle = target.getAttribute( "data-regressionTitle" );
var baselineTitle = target.getAttribute( "data-baselineTitle" );
var diffTitle = target.getAttribute( "data-diffTitle" );
[].slice.call( document.querySelectorAll( ".image-viewer .content > div" ) ).forEach( function ( node ) {
if ( node.className === "regression" ) {
node.querySelector( "img" ).setAttribute( "src", regression );
node.querySelector( "h4" ).innerText = regressionTitle;
}
else if ( node.className === "baseline" ) {
node.querySelector( "img" ).setAttribute( "src", baseline );
node.querySelector( "h4" ).innerText = baselineTitle;
}
else if ( node.className === "diff" ) {
node.querySelector( "img" ).setAttribute( "src", diff );
node.querySelector( "h4" ).innerText = diffTitle;
}
} );
}
$( "body" ).on("click", ".rendering-test", null, function( e ) {
e.preventDefault();
openViewer( e.target );
return false;
});
$( "body" ).on("click", ".image-viewer-container", null, function( e ) {
if ( !e.target ) {
return;
}
if ( e.target.className === "close" || e.target.className.match( /image-viewer-container/ ) ) {
closeViewer();
}
} );
$(".sensei-embed2").on("click", function () {
$(this).parents("article").find(".test-code").slideToggle("slow");
});
$(".sensei-embed").on("click", function () {
$(this).parents("article").find(".test-error-stack").slideToggle("slow");
});
} );
</script>
<style type="text/css">
body{
font-family: "Roboto", sans-serif;
font-size: 14px;
text-rendering: optimizeLegibility ;
-webkit-font-smoothing: antialiased ;
-moz-osx-font-smoothing: grayscale ;
line-height: 1.42857143;
color: #333;
background-color: #fff;
margin: 0px;
}
a{
text-decoration: none;
color: inherit;
}
pre{
margin-top: 0px;
}
h1, h1, h3, h4 {
text-shadow:1px 1px 1px 1px rgba(0,0,0,0.005);
margin: 0px;
}
li{
list-style-type:none;
}
.top_header{
height: 40px;
padding-left: 50px;
padding-right: 50px;
background: #333;
color: #eee;
-webkit-box-shadow: rgba(0,0,0,0.8) 0px 0px 32px;
-moz-box-shadow: rgba(0,0,0,0.8) 0px 0px 32px;
box-shadow: rgba(0,0,0,0.8) 0px 0px 32px;
}
.name{
height: 22px;
}
.version{
font-size: 8px;
}
.description{
color: #bbb;
font-size: 10px;
text-transform: uppercase;
}
.info_header{
display: flex;
flex-flow: row;
justify-content: space-between;
align-content: center;
align-items: stretch;
height: 30px;
line-height: 30px;
padding-left: 50px;
padding-right: 50px;
font-size: 10px;
text-transform: uppercase;
border-bottom: 1px solid rgba(0,0,0,0.25);
-webkit-box-shadow: rgba(255,255,255,0.25) 0px 1px 0px;
-moz-box-shadow: rgba(255,255,255,0.25) 0px 1px 0px;
box-shadow: rgba(255,255,255,0.25) 0px 1px 0px;
}
.info_header ul
{
margin: 0px;
padding: 0px;
flex: 1 1 auto;
}
.info_header li
{
display: inline;
list-style-type: none;
padding-left: 10px;
padding-right: 10px;
border-right: 1px solid rgba(0,0,0,0.25);
-webkit-box-shadow: rgba(255,255,255,0.25) 1px 0px 0px;
-moz-box-shadow: rgba(255,255,255,0.25) 1px 0px 0px;
box-shadow: rgba(255,255,255,0.25) 1px 0px 0px;
}
.info li:first-child,
.stats li:last-child
{
border-left: 1px solid rgba(0,0,0,0.25);
-webkit-box-shadow: inset rgba(255,255,255,0.25) 1px 0px 0px;
-moz-box-shadow: inset rgba(255,255,255,0.25) 1px 0px 0px;
box-shadow: inset rgba(255,255,255,0.25) 1px 0px 0px;
}
.info li{
float: left;
}
.stats li{
float: right;
}
.status i{
padding-right: 4px;
}
/*.stats li:before {
content: " ";
display: block;
background: #c00;
height: 2px;
width: 100%;
right:0px;
top: 0px;
}*/
.info_header i{
padding-right: 4px;
}
.passed{
color: #5cb85c;
}
.failed{
color: #d9534f;
}
.pending{
color: #5bc0de;
}
.total{
color: magenta;
}
.tests{
padding: 50px;
}
.collapsed{
display: none;
}
.message{
padding-left: 25px;
padding-right: 5px;
}
.tests h4{
font-weight: 400;
display: inline-block;
}
.testcase{
display: flex;
flex-flow: row;
justify-content: space-between;
align-content: center;
align-items: stretch;
padding-top: 3px;
}
.testName{
flex: 1 1 auto;
}
.testInfo{
flex: 0 1 auto;
}
.hljs{
font-size: 85%;
border-radius: 4px;
}
article:after{
content: " ";
display: block;
background: #ccc;
height: 1px;
width: 100%;
right:0px;
top: 0px;
}
@font-face {
font-family: 'Sensei-Report';
/*src: url('fonts/Sensei-Report.woff?qik77y') format('woff');*/
src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff');
font-weight: normal;
font-style: normal;
}
i, .icomoon-liga {
font-family: 'Sensei-Report';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Enable Ligatures ================ */
letter-spacing: 0;
-webkit-font-feature-settings: "liga";
-moz-font-feature-settings: "liga=1";
-moz-font-feature-settings: "liga";
-ms-font-feature-settings: "liga" 1;
-o-font-feature-settings: "liga";
font-feature-settings: "liga";
}
.sensei-calendar:before {
content: "\e900";
}
.sensei-image:before {
content: "\e90d";
}
.sensei-images:before {
content: "\e90e";
}
.sensei-stopwatch:before {
content: "\e952";
}
.sensei-display:before {
content: "\e956";
}
.sensei-earth:before {
content: "\e9ca";
}
.sensei-cross:before {
content: "\ea0f";
}
.sensei-checkmark:before {
content: "\ea10";
}
.sensei-pause2:before {
content: "\ea1d";
}
.sensei-sigma:before {
content: "\ea67";
}
.sensei-embed:before {
content: "\ea7f";
}
.sensei-embed2:before {
content: "\ea80";
}
.image-viewer-container {
color: #666;
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(51, 51, 51, 0.8);
z-index: 100;
display: none;
justify-content: center;
align-items: center;
opacity: 0;
transition: opacity 0.2s ease;
}
.image-viewer {
background: white;
box-shadow: 2px 2px 16px rgba(0, 0, 0, 0.1);
border-radius: 4px;
position: relative;
transform: scale(0.8);
transition: transform 0.4s ease;
}
.image-viewer-container.visible {
opacity: 1;
}
.image-viewer-container.visible .image-viewer {
transform: scale(1);
}
.image-viewer img,
.image-viewer h4 {
padding: 1em;
margin: 0;
}
.image-viewer h4 {
background: #fafafa;
border-radius: 4px 4px 0 0;
}
.image-viewer .baseline,
.image-viewer .diff {
display: none;
}
.image-viewer .content:hover .baseline {
display: block;
}
.image-viewer .content:hover .regression {
display: none;
}
.image-viewer .content:active .diff {
display: block;
}
.image-viewer .content:active .regression,
.image-viewer .content:active .baseline {
display: none;
}
.close {
position: absolute;
top: -1.5em;
right: -1.5em;
cursor: pointer;
border-radius: 50%;
color: white;
background: #666;
border: 2px solid white;
padding: 0.3em 0.5em;
line-height: 1em;
}
/*!
* Agate by Taufik Nurrohman <https://github.com/tovic>
* ----------------------------------------------------
*
* #ade5fc
* #a2fca2
* #c6b4f0
* #d36363
* #fcc28c
* #fc9b9b
* #ffa
* #fff
* #333
* #62c8f3
* #888
*
*/
.hljs {
display: block;
overflow-x: auto;
padding: .5em;
background: #333;
color: white;
-webkit-text-size-adjust: none;
}
.asciidoc .hljs-title,
.hljs-label,
.hljs-tag .hljs-title,
.hljs-prompt,
.http .hljs-request {
font-weight: bold;
}
.hljs-change,
.hljs-code {
font-style: italic;
}
.hljs-tag,
.ini .hljs-title {
color: #62c8f3;
}
.hljs-id,
.hljs-cbracket,
.hljs-tag .hljs-value {
color: #ade5fc;
}
.hljs-string,
.hljs-bullet {
color: #a2fca2;
}
.hljs-type,
.hljs-variable,
.hljs-name,
.actionscript .hljs-title,
.aspectj .hljs-annotation,
.aspectj .hljs-title,
.hljs-attribute,
.hljs-change,
.hljs-blockquote,
.hljs-built_in {
color: #ffa;
}
.hljs-number,
.hljs-hexcolor,
.hljs-link_label,
.hljs-link_reference {
color: #d36363;
}
.hljs-keyword,
.hljs-literal,
.hljs-constant,
.css .hljs-tag,
.hljs-typename,
.hljs-winutils {
color: #fcc28c;
}
.hljs-comment,
.hljs-cdata,
.hljs-preprocessor,
.hljs-annotation,
.hljs-decorator,
.hljs-doctype,
.hljs-deletion,
.hljs-shebang,
.apache .hljs-sqbracket,
.tex .hljs-formula,
.hljs-header,
.hljs-horizontal_rule,
.hljs-code {
color: #888;
}
.hljs-regexp,
.hljs-attr_selector {
color: #c6b4f0;
}
.hljs-important,
.hljs-doctype,
.hljs-pi,
.hljs-chunk,
.actionscript .hljs-type,
.hljs-shebang,
.hljs-pragma,
.http .hljs-attribute {
color: #fc9b9b;
}
.hljs-deletion {
background-color: #fc9b9b;
color: #333;
}
.hljs-addition {
background-color: #a2fca2;
color: #333;
}
.hljs a,
.hljs-tag .hljs-attribute {
color: inherit;
}
.hljs a:focus,
.hljs a:hover {
color: inherit;
text-decoration: underline;
}
</style>
</head>
<body>
<header>
<section class="top_header">
<h1 class="name">sense-navigation<span class="version"> v 1.0.0-beta-01</span></h1>
<h3 class="description">Sense Sheet Navigation + Actions visualization extension for Qlik Sense.</h3>
</section>
<section class="info_header">
<ul class="info">
<li><i class="sensei-calendar"></i>Tuesday, January 23 2018, 23:09</li>
<li><i class="sensei-earth"></i>chrome (63.0.3239.132)</li>
<li><i class="sensei-stopwatch"></i>1:21 m</li>
</ul>
<ul class="stats">
<li><i class="sensei-sigma total"></i>TOTAL 14</li>
<li><i class="sensei-pause2 pending"></i>PENDING 0</li>
<li><i class="sensei-cross failed"></i>FAILED 0</li>
<li><i class="sensei-checkmark passed"></i>PASSED 14</li>
</ul>
</section>
</header>
<section class="tests">
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>ACTIONS does something</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>1.428 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'ApplyBookmark'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-built_in">console</span>.log(<span class="hljs-string">'-- filterPane'</span>);<br> <span class="hljs-keyword">const</span> filterPane = <span class="hljs-keyword">new</span> FilterPane();<br> <span class="hljs-keyword">await</span> filterPane.get(<span class="hljs-string">'Dim1'</span>);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Button Alignment => should be equal to the taken screenshot</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>6.500 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">const</span> appOverview = <span class="hljs-keyword">new</span> AppOverviewPage();<br> <span class="hljs-keyword">await</span> appOverview.get(<span class="hljs-string">'sense-navigation_v1x'</span>);<br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'Button Alignment'</span>);<br> <span class="hljs-keyword">await</span> browser.wait(EC.visibilityOf($(selectors.qvtSheet)), timeoutTime, <span class="hljs-string">'Sheet was not visible'</span>);<br> <span class="hljs-keyword">return</span> expect(<span class="hljs-keyword">await</span> browser.takeImageOf({<span class="hljs-attr">selector</span>: selectors.qvtSheet})).to.matchImageOf(<span class="hljs-string">'button_alignment'</span>, <span class="hljs-string">'button_alignment'</span>);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Button Icons => should be equal to the taken screenshot</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>5.144 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">const</span> appOverview = <span class="hljs-keyword">new</span> AppOverviewPage();<br> <span class="hljs-keyword">await</span> appOverview.get(<span class="hljs-string">'sense-navigation_v1x'</span>);<br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'Icon-Buttons'</span>);<br> <span class="hljs-keyword">await</span> browser.wait(EC.visibilityOf($(selectors.qvtSheet)), timeoutTime, <span class="hljs-string">'Sheet was not visible'</span>);<br> <span class="hljs-keyword">return</span> expect(<span class="hljs-keyword">await</span> browser.takeImageOf({<span class="hljs-attr">selector</span>: selectors.qvtSheet})).to.matchImageOf(<span class="hljs-string">'button_icons'</span>, <span class="hljs-string">'button_icons'</span>);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Navigation Actions => should be possible to use a button to do NOTHING</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>1.941 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">const</span> targetSheetId = <span class="hljs-string">'d38aba7e-c691-448c-bb69-91e63374f716'</span>;<br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'test:navigation-actions'</span>);<br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'Nothing'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-keyword">await</span> browser.wait(EC.urlContains(targetSheetId), timeoutTime);<br> <span class="hljs-keyword">await</span> browser.wait(EC.urlContains(<span class="hljs-string">'state/analysis'</span>), timeoutTime);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Navigation Actions => should be possible to use button for navigate to EDIT MODE</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>2.170 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'test:navigation-actions'</span>);<br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'Switch to Edit'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-keyword">await</span> browser.wait(EC.urlContains(<span class="hljs-string">'/state/edit'</span>), timeoutTime);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Navigation Actions => should be possible to use button to navigate to the FIRST sheet</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>1.956 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">const</span> targetSheetId = <span class="hljs-string">'392462be-a70b-4f14-a4cd-05a7aab19ed8'</span>;<br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'test:navigation-actions'</span>);<br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'GotoFirstSheet'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-keyword">await</span> browser.wait(EC.urlContains(targetSheetId), timeoutTime);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Navigation Actions => should be possible to use button to navigate to the LAST sheet</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>1.846 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">const</span> targetSheetId = <span class="hljs-string">'e9f4240b-2185-4b56-af7f-8e9a25253db0'</span>;<br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'test:navigation-actions'</span>);<br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'GotoLastSheet'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-keyword">await</span> browser.wait(EC.urlContains(targetSheetId), timeoutTime);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Navigation Actions => should be possible to use button to navigate to the NEXT sheet</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>1.661 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">const</span> targetSheetId = <span class="hljs-string">'36b1f160-b676-4a3e-a753-c5f51a467f90'</span>;<br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'first'</span>);<br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'GotoNextSheet'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-keyword">await</span> browser.wait(EC.urlContains(targetSheetId), timeoutTime);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Navigation Actions => should be possible to use button to navigate to the PREV sheet</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>1.639 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">const</span> targetSheetId = <span class="hljs-string">'392462be-a70b-4f14-a4cd-05a7aab19ed8'</span>;<br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'second'</span>);<br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'GotoPrevSheet'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-keyword">await</span> browser.wait(EC.urlContains(targetSheetId), timeoutTime);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Navigation Actions => should be possible to use button to navigate to a SELECTED sheet</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>2.123 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">const</span> targetSheetId = <span class="hljs-string">'7976f92b-8b88-444a-b10f-6d878e72d498'</span>; <span class="hljs-comment">// =Icon-Buttons</span><br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'test:navigation-actions'</span>);<br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'GotoSelectedSheet'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-keyword">await</span> browser.wait(EC.urlContains(targetSheetId), timeoutTime);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Navigation Actions => should be possible to use button to navigate to a SPECIFIC sheet</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>2.77 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">const</span> targetSheetId = <span class="hljs-string">'7976f92b-8b88-444a-b10f-6d878e72d498'</span>; <span class="hljs-comment">// =Icon-Buttons</span><br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'test:navigation-actions'</span>);<br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'GotoSpecificSheet'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-keyword">await</span> browser.wait(EC.urlContains(targetSheetId), timeoutTime);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Navigation Actions => should be possible to use button to open a new website (SAME window)</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>4.250 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'test:navigation-actions'</span>);<br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'OpenUrl:self'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-keyword">await</span> browser.wait(EC.urlContains(<span class="hljs-string">'https://github.com'</span>), timeoutTime);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Navigation Actions => should be possible to use button to open a new website (NEW window)</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>3.776 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'test:navigation-actions'</span>);<br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'OpenUrl:blank'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-keyword">await</span> browser.sleep(<span class="hljs-number">1000</span>);<br> <span class="hljs-keyword">let</span> handles = <span class="hljs-keyword">await</span> browser.getAllWindowHandles();<br> <span class="hljs-keyword">await</span> browser.switchTo().window(handles[<span class="hljs-number">1</span>]);<br> <span class="hljs-keyword">let</span> newUrl = <span class="hljs-keyword">await</span> browser.getCurrentUrl();<br> expect(newUrl).to.contain(<span class="hljs-string">'https://github.com'</span>);</code></pre>
</div>
</article>
<article>
<div class="testcase">
<div class="testName">
<i class="sensei-checkmark passed"></i>
<h4>Navigation Actions => should be possible to use button to go to a story</h4>
<i class="sensei-embed2"></i>
</div>
<div class="testInfo">
<span>1.982 s</span>
</div>
</div>
<div class="test-code collapsed">
<span class="message">Test spec:</span>
<pre><code class="hljs"><span class="hljs-keyword">async</span> <br> <span class="hljs-keyword">const</span> targetId = <span class="hljs-string">'3bf18616-4e88-46df-bbec-9287e5f52f83'</span>; <span class="hljs-comment">// =test-story</span><br> <span class="hljs-keyword">await</span> appOverview.openSheet(<span class="hljs-string">'test:navigation-actions'</span>);<br> <span class="hljs-keyword">const</span> btn = <span class="hljs-keyword">new</span> Button();<br> <span class="hljs-keyword">await</span> btn.get(<span class="hljs-string">'GotoStory'</span>);<br> <span class="hljs-keyword">await</span> btn.click();<br> <span class="hljs-keyword">await</span> browser.wait(EC.urlContains(targetId), timeoutTime);</code></pre>
</div>
</article>
</section>
<div class="image-viewer-container">
<div class="image-viewer">
<div class="close">✖</div>
<div class="content">
<div class="regression">
<h4></h4>
<img></img>
</div>
<div class="baseline">
<h4></h4>
<img></img>
</div>
<div class="diff">
<h4></h4>
<img></img>
</div>
</div>
</div>
</div>
</body>
</html>