diff --git a/build/browser/app.js b/build/browser/app.js index 27f66d8d..0db9cba5 100644 --- a/build/browser/app.js +++ b/build/browser/app.js @@ -54,7 +54,15 @@ app.controller('AppController', function($q, DriveScannerService, SelectionState this.selection = SelectionStateService; this.writer = ImageWriterService; this.scanner = DriveScannerService; - this.scanner.start(2000); + + this.restart = function() { + console.debug('Restarting'); + this.selection.clear(); + this.writer.setProgress(0); + this.scanner.start(2000); + }; + + this.restart(); this.selectImage = function() { return $q.when(dialog.selectImage()).then(function(image) { @@ -613,6 +621,18 @@ selectionState.service('SelectionStateService', function() { return !!self.getImage(); }; + /** + * @summary Clear all selections + * @function + * @public + * + * @example + * SelectionStateService.clear(); + */ + this.clear = function() { + selection = {}; + }; + }); },{"angular":9}],6:[function(require,module,exports){ diff --git a/build/css/main.css b/build/css/main.css index 3432d5c8..a09fad4f 100644 --- a/build/css/main.css +++ b/build/css/main.css @@ -22,7 +22,7 @@ * THE SOFTWARE. */ /*! - * Bootstrap v3.3.5 (http://getbootstrap.com) + * Bootstrap v3.3.6 (http://getbootstrap.com) * Copyright 2011-2015 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ @@ -260,8 +260,8 @@ th { @font-face { font-family: 'Glyphicons Halflings'; - src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot"); - src: url("../fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff2") format("woff2"), url("../fonts/bootstrap/glyphicons-halflings-regular.woff") format("woff"), url("../fonts/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"), url("../fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); } + src: url("../../node_modules/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.eot"); + src: url("../../node_modules/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("../../node_modules/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2") format("woff2"), url("../../node_modules/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.woff") format("woff"), url("../../node_modules/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf") format("truetype"), url("../../node_modules/bootstrap-sass/assets/fonts/bootstrap/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); } .glyphicon { position: relative; @@ -275,10 +275,10 @@ th { -moz-osx-font-smoothing: grayscale; } .glyphicon-asterisk:before { - content: "\2a"; } + content: "\002a"; } .glyphicon-plus:before { - content: "\2b"; } + content: "\002b"; } .glyphicon-euro:before, .glyphicon-eur:before { @@ -1181,7 +1181,7 @@ h1, h2, h3, h4, h5, h6, .h6 .small { font-weight: normal; line-height: 1; - color: #777777; } + color: #ddd; } h1, .h1, h2, .h2, @@ -1279,7 +1279,7 @@ mark, text-transform: capitalize; } .text-muted { - color: #777777; } + color: #ddd; } .text-primary { color: #5793db; } @@ -1418,7 +1418,7 @@ dd { abbr[title], abbr[data-original-title] { cursor: help; - border-bottom: 1px dotted #777777; } + border-bottom: 1px dotted #ddd; } .initialism { font-size: 90%; } @@ -1438,7 +1438,7 @@ blockquote { display: block; font-size: 80%; line-height: 1.42857; - color: #777777; } + color: #ddd; } blockquote footer:before, blockquote small:before, blockquote .small:before { @@ -2047,7 +2047,7 @@ table { caption { padding-top: 8px; padding-bottom: 8px; - color: #777777; + color: #ddd; text-align: left; } th { @@ -2354,6 +2354,9 @@ output { color: #999; } .form-control::-webkit-input-placeholder { color: #999; } + .form-control::-ms-expand { + border: 0; + background-color: transparent; } .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { background-color: #eeeeee; @@ -2797,7 +2800,7 @@ select[multiple].input-lg, @media (min-width: 768px) { .form-horizontal .form-group-lg .control-label { - padding-top: 14.33333px; + padding-top: 11px; font-size: 17px; } } @media (min-width: 768px) { @@ -2875,13 +2878,10 @@ fieldset[disabled] a.btn { .btn-default:active, .btn-default.active, .open > .btn-default.dropdown-toggle { background-image: none; } - .btn-default.disabled, .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default.disabled:active, .btn-default.disabled.active, .btn-default[disabled], .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus, .btn-default[disabled]:active, .btn-default[disabled].active, - fieldset[disabled] .btn-default, + .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus, fieldset[disabled] .btn-default:hover, fieldset[disabled] .btn-default:focus, - fieldset[disabled] .btn-default.focus, - fieldset[disabled] .btn-default:active, - fieldset[disabled] .btn-default.active { + fieldset[disabled] .btn-default.focus { background-color: #fff; border-color: #ccc; } .btn-default .badge { @@ -2915,13 +2915,10 @@ fieldset[disabled] a.btn { .btn-primary:active, .btn-primary.active, .open > .btn-primary.dropdown-toggle { background-image: none; } - .btn-primary.disabled, .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary.disabled:active, .btn-primary.disabled.active, .btn-primary[disabled], .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus, .btn-primary[disabled]:active, .btn-primary[disabled].active, - fieldset[disabled] .btn-primary, + .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus, fieldset[disabled] .btn-primary:hover, fieldset[disabled] .btn-primary:focus, - fieldset[disabled] .btn-primary.focus, - fieldset[disabled] .btn-primary:active, - fieldset[disabled] .btn-primary.active { + fieldset[disabled] .btn-primary.focus { background-color: #5793db; border-color: #4286d7; } .btn-primary .badge { @@ -2955,13 +2952,10 @@ fieldset[disabled] a.btn { .btn-success:active, .btn-success.active, .open > .btn-success.dropdown-toggle { background-image: none; } - .btn-success.disabled, .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success.disabled:active, .btn-success.disabled.active, .btn-success[disabled], .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus, .btn-success[disabled]:active, .btn-success[disabled].active, - fieldset[disabled] .btn-success, + .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus, fieldset[disabled] .btn-success:hover, fieldset[disabled] .btn-success:focus, - fieldset[disabled] .btn-success.focus, - fieldset[disabled] .btn-success:active, - fieldset[disabled] .btn-success.active { + fieldset[disabled] .btn-success.focus { background-color: #5cb85c; border-color: #4cae4c; } .btn-success .badge { @@ -2995,13 +2989,10 @@ fieldset[disabled] a.btn { .btn-info:active, .btn-info.active, .open > .btn-info.dropdown-toggle { background-image: none; } - .btn-info.disabled, .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info.disabled:active, .btn-info.disabled.active, .btn-info[disabled], .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus, .btn-info[disabled]:active, .btn-info[disabled].active, - fieldset[disabled] .btn-info, + .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus, fieldset[disabled] .btn-info:hover, fieldset[disabled] .btn-info:focus, - fieldset[disabled] .btn-info.focus, - fieldset[disabled] .btn-info:active, - fieldset[disabled] .btn-info.active { + fieldset[disabled] .btn-info.focus { background-color: #5bc0de; border-color: #46b8da; } .btn-info .badge { @@ -3035,13 +3026,10 @@ fieldset[disabled] a.btn { .btn-warning:active, .btn-warning.active, .open > .btn-warning.dropdown-toggle { background-image: none; } - .btn-warning.disabled, .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning.disabled:active, .btn-warning.disabled.active, .btn-warning[disabled], .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus, .btn-warning[disabled]:active, .btn-warning[disabled].active, - fieldset[disabled] .btn-warning, + .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus, fieldset[disabled] .btn-warning:hover, fieldset[disabled] .btn-warning:focus, - fieldset[disabled] .btn-warning.focus, - fieldset[disabled] .btn-warning:active, - fieldset[disabled] .btn-warning.active { + fieldset[disabled] .btn-warning.focus { background-color: #f0ad4e; border-color: #eea236; } .btn-warning .badge { @@ -3075,13 +3063,10 @@ fieldset[disabled] a.btn { .btn-danger:active, .btn-danger.active, .open > .btn-danger.dropdown-toggle { background-image: none; } - .btn-danger.disabled, .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger.disabled:active, .btn-danger.disabled.active, .btn-danger[disabled], .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus, .btn-danger[disabled]:active, .btn-danger[disabled].active, - fieldset[disabled] .btn-danger, + .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus, fieldset[disabled] .btn-danger:hover, fieldset[disabled] .btn-danger:focus, - fieldset[disabled] .btn-danger.focus, - fieldset[disabled] .btn-danger:active, - fieldset[disabled] .btn-danger.active { + fieldset[disabled] .btn-danger.focus { background-color: #d9534f; border-color: #d43f3a; } .btn-danger .badge { @@ -3106,7 +3091,7 @@ fieldset[disabled] a.btn { .btn-link[disabled]:hover, .btn-link[disabled]:focus, fieldset[disabled] .btn-link:hover, fieldset[disabled] .btn-link:focus { - color: #777777; + color: #ddd; text-decoration: none; } .btn-lg, .btn-group-lg > .btn { @@ -3236,7 +3221,7 @@ tbody.collapse.in { background-color: #5793db; } .dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { - color: #777777; } + color: #ddd; } .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus { text-decoration: none; @@ -3264,7 +3249,7 @@ tbody.collapse.in { padding: 3px 20px; font-size: 12px; line-height: 1.42857; - color: #777777; + color: #ddd; white-space: nowrap; } .dropdown-backdrop { @@ -3426,13 +3411,15 @@ tbody.collapse.in { .btn-group-vertical > .btn:first-child:not(:last-child) { border-top-right-radius: 4px; + border-top-left-radius: 4px; border-bottom-right-radius: 0; border-bottom-left-radius: 0; } .btn-group-vertical > .btn:last-child:not(:first-child) { - border-bottom-left-radius: 4px; border-top-right-radius: 0; - border-top-left-radius: 0; } + border-top-left-radius: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; } .btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { border-radius: 0; } @@ -3483,6 +3470,8 @@ tbody.collapse.in { float: left; width: 100%; margin-bottom: 0; } + .input-group .form-control:focus { + z-index: 3; } .input-group-addon, .input-group-btn, @@ -3589,9 +3578,9 @@ tbody.collapse.in { text-decoration: none; background-color: #eeeeee; } .nav > li.disabled > a { - color: #777777; } + color: #ddd; } .nav > li.disabled > a:hover, .nav > li.disabled > a:focus { - color: #777777; + color: #ddd; text-decoration: none; background-color: transparent; cursor: initial; } @@ -4030,14 +4019,14 @@ tbody.collapse.in { background-color: #222; border-color: #090909; } .navbar-inverse .navbar-brand { - color: #9d9d9d; } + color: white; } .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus { color: #fff; background-color: transparent; } .navbar-inverse .navbar-text { - color: #9d9d9d; } + color: white; } .navbar-inverse .navbar-nav > li > a { - color: #9d9d9d; } + color: white; } .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus { color: #fff; background-color: transparent; } @@ -4065,7 +4054,7 @@ tbody.collapse.in { .navbar-inverse .navbar-nav .open .dropdown-menu .divider { background-color: #090909; } .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { - color: #9d9d9d; } + color: white; } .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { color: #fff; background-color: transparent; } @@ -4076,11 +4065,11 @@ tbody.collapse.in { color: #444; background-color: transparent; } } .navbar-inverse .navbar-link { - color: #9d9d9d; } + color: white; } .navbar-inverse .navbar-link:hover { color: #fff; } .navbar-inverse .btn-link { - color: #9d9d9d; } + color: white; } .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus { color: #fff; } .navbar-inverse .btn-link[disabled]:hover, .navbar-inverse .btn-link[disabled]:focus, @@ -4101,7 +4090,7 @@ tbody.collapse.in { padding: 0 5px; color: #ccc; } .breadcrumb > .active { - color: #777777; } + color: #ddd; } .pagination { display: inline-block; @@ -4133,7 +4122,7 @@ tbody.collapse.in { .pagination > li > a:hover, .pagination > li > a:focus, .pagination > li > span:hover, .pagination > li > span:focus { - z-index: 3; + z-index: 2; color: #296cbd; background-color: #eeeeee; border-color: #ddd; } @@ -4141,7 +4130,7 @@ tbody.collapse.in { .pagination > .active > span, .pagination > .active > span:hover, .pagination > .active > span:focus { - z-index: 2; + z-index: 3; color: #fff; background-color: #5793db; border-color: #5793db; @@ -4152,7 +4141,7 @@ tbody.collapse.in { .pagination > .disabled > a, .pagination > .disabled > a:hover, .pagination > .disabled > a:focus { - color: #777777; + color: #ddd; background-color: #fff; border-color: #ddd; cursor: initial; } @@ -4222,7 +4211,7 @@ tbody.collapse.in { .pager .disabled > a:hover, .pager .disabled > a:focus, .pager .disabled > span { - color: #777777; + color: #ddd; background-color: #fff; cursor: initial; } @@ -4249,9 +4238,9 @@ a.label:hover, a.label:focus { cursor: pointer; } .label-default { - background-color: #777777; } + background-color: #ddd; } .label-default[href]:hover, .label-default[href]:focus { - background-color: #5e5e5e; } + background-color: #c4c4c4; } .label-primary { background-color: #5793db; } @@ -4289,7 +4278,7 @@ a.label:hover, a.label:focus { vertical-align: middle; white-space: nowrap; text-align: center; - background-color: #777777; + background-color: #ddd; border-radius: 10px; } .badge:empty { display: none; } @@ -4333,7 +4322,9 @@ a.badge:hover, a.badge:focus { border-top-color: #d5d5d5; } .container .jumbotron, .container-fluid .jumbotron { - border-radius: 6px; } + border-radius: 6px; + padding-left: 15px; + padding-right: 15px; } .jumbotron .container { max-width: 100%; } @media screen and (min-width: 768px) { @@ -4598,12 +4589,12 @@ button.list-group-item { .list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus { background-color: #eeeeee; - color: #777777; + color: #ddd; cursor: initial; } .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading { color: inherit; } .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text { - color: #777777; } + color: #ddd; } .list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus { z-index: 2; @@ -5158,8 +5149,12 @@ button.close { .modal-header { padding: 15px; - border-bottom: 1px solid #e5e5e5; - min-height: 16.42857px; } + border-bottom: 1px solid #e5e5e5; } + .modal-header:before, .modal-header:after { + content: " "; + display: table; } + .modal-header:after { + clear: both; } .modal-header .close { margin-top: -2px; } @@ -5518,7 +5513,8 @@ button.close { font-size: 20px; color: #fff; text-align: center; - text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); } + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + background-color: transparent; } .carousel-control.left { background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%); @@ -5615,14 +5611,14 @@ button.close { .carousel-control .icon-next { width: 30px; height: 30px; - margin-top: -15px; + margin-top: -10px; font-size: 30px; } .carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev { - margin-left: -15px; } + margin-left: -10px; } .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next { - margin-right: -15px; } + margin-right: -10px; } .carousel-caption { left: 20%; right: 20%; @@ -5931,13 +5927,16 @@ body { margin: 15px 0; } .space-vertical-large { - margin: 25px 0; } + margin: 30px 0; } .space-horizontal-large { - margin: 0 25px; } + margin: 0 30px; } -.space-top-large { - margin-top: 25px; } +.space-bottom-large { + margin-bottom: 30px; } + +.space-right-tiny { + margin-right: 5px; } hero-badge .badge { background-color: #535760; } @@ -5982,9 +5981,15 @@ body { .relative { position: relative; } +.soft { + color: #ddd; } + .section-footer { - color: #333333; - margin-top: 50px; } + position: fixed; + bottom: 30px; + left: 0; + right: 0; + color: #333333; } .step-border, .step-border-left, .step-border-right { height: 2px; diff --git a/lib/browser/app.js b/lib/browser/app.js index bfa05953..1842a87b 100644 --- a/lib/browser/app.js +++ b/lib/browser/app.js @@ -53,7 +53,15 @@ app.controller('AppController', function($q, DriveScannerService, SelectionState this.selection = SelectionStateService; this.writer = ImageWriterService; this.scanner = DriveScannerService; - this.scanner.start(2000); + + this.restart = function() { + console.debug('Restarting'); + this.selection.clear(); + this.writer.setProgress(0); + this.scanner.start(2000); + }; + + this.restart(); this.selectImage = function() { return $q.when(dialog.selectImage()).then(function(image) { diff --git a/lib/browser/modules/selection-state.js b/lib/browser/modules/selection-state.js index 507ddb68..8e06325b 100644 --- a/lib/browser/modules/selection-state.js +++ b/lib/browser/modules/selection-state.js @@ -130,4 +130,16 @@ selectionState.service('SelectionStateService', function() { return !!self.getImage(); }; + /** + * @summary Clear all selections + * @function + * @public + * + * @example + * SelectionStateService.clear(); + */ + this.clear = function() { + selection = {}; + }; + }); diff --git a/lib/components/hero-button.html b/lib/components/hero-button.html index 83fe2111..541c9d33 100644 --- a/lib/components/hero-button.html +++ b/lib/components/hero-button.html @@ -18,6 +18,11 @@ position: relative; } + :host ::content .glyphicon { + top: 2px; + margin-right: 2px; + } + /* * Remove blue/orange outline * !important is needed here for some reason diff --git a/lib/components/hero-tick.html b/lib/components/hero-tick.html new file mode 100644 index 00000000..52ad7f72 --- /dev/null +++ b/lib/components/hero-tick.html @@ -0,0 +1,46 @@ + + + + + + + diff --git a/lib/index.html b/lib/index.html index ebfaccbf..ea505e7d 100644 --- a/lib/index.html +++ b/lib/index.html @@ -11,6 +11,7 @@ + @@ -19,7 +20,7 @@
-
+
SELECT IMAGE @@ -87,7 +88,6 @@ - Done Finishing... Burn! Starting... @@ -98,14 +98,26 @@
-
+ + diff --git a/lib/scss/main.scss b/lib/scss/main.scss index a49d6440..9f0ed846 100644 --- a/lib/scss/main.scss +++ b/lib/scss/main.scss @@ -21,9 +21,11 @@ * THE SOFTWARE. */ +$icon-font-path: "../../node_modules/bootstrap-sass/assets/fonts/bootstrap/"; $body-bg: rgb(83, 87, 96); $text-color: white; $brand-primary: rgb(87, 147, 219); +$gray-light: #ddd; $font-size-base: 13px; $cursor-disabled: initial; $color-disabled: rgb(120, 124, 127); @@ -97,9 +99,16 @@ body { position: relative; } +.soft { + color: $gray-light; +} + .section-footer { + position: fixed; + bottom: 30px; + left: 0; + right: 0; color: $gray-dark; - margin-top: 50px; } .step-border { diff --git a/lib/scss/modules/_space.scss b/lib/scss/modules/_space.scss index 1fe9b2a7..27a14eb6 100644 --- a/lib/scss/modules/_space.scss +++ b/lib/scss/modules/_space.scss @@ -21,8 +21,9 @@ * THE SOFTWARE. */ -$spacing-large: 25px; +$spacing-large: 30px; $spacing-medium: 15px; +$spacing-tiny: 5px; .space-vertical-medium { margin: $spacing-medium 0; @@ -36,6 +37,10 @@ $spacing-medium: 15px; margin: 0 $spacing-large; } -.space-top-large { - margin-top: $spacing-large; +.space-bottom-large { + margin-bottom: $spacing-large; +} + +.space-right-tiny { + margin-right: $spacing-tiny; } diff --git a/screenshot.png b/screenshot.png index 13649e9f..a3a62aba 100644 Binary files a/screenshot.png and b/screenshot.png differ diff --git a/tests/browser/modules/selection-state.spec.js b/tests/browser/modules/selection-state.spec.js index 686dadc0..0df38345 100644 --- a/tests/browser/modules/selection-state.spec.js +++ b/tests/browser/modules/selection-state.spec.js @@ -18,6 +18,10 @@ describe('Browser: SelectionState', function() { describe('given a clean state', function() { + beforeEach(function() { + SelectionStateService.clear(); + }); + it('getDrive() should return undefined', function() { var drive = SelectionStateService.getDrive(); m.chai.expect(drive).to.be.undefined; @@ -140,6 +144,29 @@ describe('Browser: SelectionState', function() { }); + describe('given a drive', function() { + + beforeEach(function() { + SelectionStateService.setDrive('/dev/disk2'); + SelectionStateService.setImage('foo.img'); + }); + + describe('.clear()', function() { + + it('should clear all selections', function() { + m.chai.expect(SelectionStateService.hasDrive()).to.be.true; + m.chai.expect(SelectionStateService.hasImage()).to.be.true; + + SelectionStateService.clear(); + + m.chai.expect(SelectionStateService.hasDrive()).to.be.false; + m.chai.expect(SelectionStateService.hasImage()).to.be.false; + }); + + }); + + }); + }); });