blob: d2bcf07039bf1e02cc6c7153d289456c30258798 [file] [log] [blame]
<!doctype html>
<!--
@license
Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
-->
<html>
<head>
<title>app-route 0bserver Test</title>
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
<script src="../../web-component-tester/browser.js"></script>
<link rel="import" href="../../polymer/polymer.html">
<link rel="import" href="./observer-tester.html">
</head>
<body>
<test-fixture id="observer_app">
<template>
<observer-tester id="testel"></observer-tester>
</template>
</test-fixture>
<script>
'use strict';
function setLocation(url) {
window.history.pushState({}, '', url);
Polymer.Base.fire('location-changed', {}, { node: window });
}
suite('observe app-route active changes', function(){
var originalLocation;
var sandbox, el;
setup(function(){
originalLocation = window.location.href;
sandbox = sinon.sandbox.create();
el = fixture('observer_app');
});
teardown(function(){
sandbox.restore();
window.history.replaceState({}, '', originalLocation);
});
test('observer should fire when route selected', function(){
sandbox.spy(el,'checkActive');
setLocation('/report/1000');
expect(el.checkActive).to.have.been.called.once;
expect(el.checkActive).to.have.been.calledWith(true);
});
test('observer should fire when route deselected',function(){
setLocation('/report/1000');
sandbox.spy(el,'checkActive');
setLocation('/menu');
expect(el.checkActive).to.have.been.called.once;
expect(el.checkActive).to.have.been.calledWith(false);
});
});
</script>
</body>