From 2207d95c4f3efd32f416a0335bd113d249bfb0c6 Mon Sep 17 00:00:00 2001 From: Addy Osmani Date: Wed, 11 Feb 2015 15:53:10 +0000 Subject: [PATCH] Add tests for Buttons and Spinners. --- test/index.html | 41 +++++++++++++++++++++++++++++++++++++++++ test/unit/button.js | 32 ++++++++++++++++++++++++++++++++ test/unit/spinner.js | 41 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 test/index.html create mode 100644 test/unit/button.js create mode 100644 test/unit/spinner.js diff --git a/test/index.html b/test/index.html new file mode 100644 index 00000000..fc728de3 --- /dev/null +++ b/test/index.html @@ -0,0 +1,41 @@ + + + + + + + Mocha Test Runner + + + + +
+ + + + + + + + + + + + + + + diff --git a/test/unit/button.js b/test/unit/button.js new file mode 100644 index 00000000..714bcc61 --- /dev/null +++ b/test/unit/button.js @@ -0,0 +1,32 @@ + + describe('button tests', function () { + + it('Should have MaterialButton globally available', function () { + expect(MaterialButton).to.be.a('function'); + }); + + it('Should be upgraded to a MaterialButton successfully', function () { + var el = document.createElement('button'); + componentHandler.upgradeElement(el, 'MaterialButton'); + var upgraded = el.getAttribute('data-upgraded'); + expect(upgraded).to.contain('MaterialButton'); + }); + + it('Should be upgraded to a raised MaterialButton button with ripples successfully', function () { + var el = document.createElement('div'); + el.innerHTML = ''; + var btn = el.firstChild; + componentHandler.upgradeElement(btn, 'MaterialButton'); + expect(btn.childNodes[1].className).to.contain('wsk-button__ripple-container'); + expect(btn.childNodes[1].firstChild.className).to.contain('wsk-ripple'); + }); + + it('Should be upgraded to a MaterialButton FAB with ripples successfully', function () { + var el = document.createElement('div'); + el.innerHTML = ''; + var btn = el.firstChild; + componentHandler.upgradeElement(btn, 'MaterialButton'); + expect(btn.childNodes[1].className).to.contain('wsk-button__ripple-container'); + expect(btn.childNodes[1].firstChild.className).to.contain('wsk-ripple'); + }); + }); diff --git a/test/unit/spinner.js b/test/unit/spinner.js new file mode 100644 index 00000000..3ea79324 --- /dev/null +++ b/test/unit/spinner.js @@ -0,0 +1,41 @@ + +describe('spinner tests', function () { + + it('Should have MaterialSpinner globally available', function () { + expect(MaterialSpinner).to.be.a('function'); + }); + + it('Should be upgraded to a MaterialSpinner successfully', function () { + var el = document.createElement('div'); + componentHandler.upgradeElement(el, 'MaterialSpinner'); + var upgraded = el.getAttribute('data-upgraded'); + expect(upgraded).to.contain('MaterialSpinner'); + }); + + it('Should start a MaterialSpinner successfully', function () { + var el = document.createElement('div'); + componentHandler.upgradeElement(el, 'MaterialSpinner'); + el.widget.start(); + expect(el.classList.contains('is-active')).to.be.true(); + }); + + it('Should stop a MaterialSpinner successfully', function () { + var el = document.createElement('div'); + componentHandler.upgradeElement(el, 'MaterialSpinner'); + el.widget.start(); + el.widget.stop(); + expect(el.classList.contains('is-active')).to.be.false(); + }); + + it('Creates MaterialSpinner layers successfully', function () { + var el = document.createElement('div'); + componentHandler.upgradeElement(el, 'MaterialSpinner'); + var html = el.innerHTML; + expect(html).to.contain('wsk-spinner__layer'); + expect(html).to.contain('wsk-spinner__layer-1'); + expect(html).to.contain('wsk-spinner__layer-2'); + expect(html).to.contain('wsk-spinner__layer-3'); + expect(html).to.contain('wsk-spinner__layer-4'); + expect(html).to.contain('wsk-spinner__circle'); + }); +});