hooch 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/hooch.js +395 -1
  3. data/jasmine/jasmine-fixture.js +433 -0
  4. data/jasmine/node_modules/karma-chrome-launcher/CHANGELOG.md +108 -0
  5. data/jasmine/node_modules/karma-chrome-launcher/LICENSE +20 -0
  6. data/jasmine/node_modules/karma-chrome-launcher/README.md +49 -0
  7. data/jasmine/node_modules/karma-chrome-launcher/examples/simple/index.spec.js +5 -0
  8. data/jasmine/node_modules/karma-chrome-launcher/examples/simple/karma.conf.js +32 -0
  9. data/jasmine/node_modules/karma-chrome-launcher/gruntfile.js +63 -0
  10. data/jasmine/node_modules/karma-chrome-launcher/index.js +181 -0
  11. data/jasmine/node_modules/karma-chrome-launcher/node_modules/.bin/which +14 -0
  12. data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/index.js +41 -0
  13. data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/license +21 -0
  14. data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/index.js +19 -0
  15. data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/license +21 -0
  16. data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/package.json +65 -0
  17. data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/readme.md +34 -0
  18. data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/package.json +71 -0
  19. data/jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/readme.md +53 -0
  20. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/.travis.yml +8 -0
  21. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/LICENSE +15 -0
  22. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/README.md +34 -0
  23. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/bin/which +14 -0
  24. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/LICENSE +21 -0
  25. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/README.md +53 -0
  26. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/index.js +27 -0
  27. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/LICENSE-MIT +21 -0
  28. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/README.md +38 -0
  29. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/index.js +21 -0
  30. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/package.json +75 -0
  31. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/package.json +75 -0
  32. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/package.json +56 -0
  33. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/test/basic.js +99 -0
  34. data/jasmine/node_modules/karma-chrome-launcher/node_modules/which/which.js +111 -0
  35. data/jasmine/node_modules/karma-chrome-launcher/package.json +142 -0
  36. data/jasmine/node_modules/karma-chrome-launcher/test/jsflags.spec.js +53 -0
  37. data/jasmine/spec/hoochSpec.js +66 -0
  38. data/lib/hooch/version.rb +1 -1
  39. metadata +37 -3
@@ -0,0 +1,142 @@
1
+ {
2
+ "name": "karma-chrome-launcher",
3
+ "version": "0.2.0",
4
+ "description": "A Karma plugin. Launcher for Chrome and Chrome Canary.",
5
+ "main": "index.js",
6
+ "scripts": {
7
+ "test": "jasmine-node test"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git://github.com/karma-runner/karma-chrome-launcher.git"
12
+ },
13
+ "keywords": [
14
+ "karma-plugin",
15
+ "karma-launcher",
16
+ "chrome"
17
+ ],
18
+ "author": {
19
+ "name": "Vojta Jina",
20
+ "email": "vojta.jina@gmail.com"
21
+ },
22
+ "dependencies": {
23
+ "fs-access": "^1.0.0",
24
+ "which": "^1.0.9"
25
+ },
26
+ "license": "MIT",
27
+ "devDependencies": {
28
+ "chai": "^3.0.0",
29
+ "eslint": "^0.23.0",
30
+ "eslint-config-standard": "^3.3.0",
31
+ "grunt": "^0.4.1",
32
+ "grunt-auto-release": "^0.0.6",
33
+ "grunt-bump": "^0.3.1",
34
+ "grunt-conventional-changelog": "^1.2.2",
35
+ "grunt-eslint": "^15.0.0",
36
+ "grunt-karma": "^0.11.1",
37
+ "grunt-npm": "^0.0.2",
38
+ "grunt-simple-mocha": "^0.4.0",
39
+ "jasmine-node": "^1.14.5",
40
+ "karma": "^0.12.36",
41
+ "karma-mocha": "^0.2.0",
42
+ "load-grunt-tasks": "^3.2.0",
43
+ "mocha": "^2.2.5",
44
+ "sinon": "^1.15.3"
45
+ },
46
+ "contributors": [
47
+ {
48
+ "name": "Mark Ethan Trostler",
49
+ "email": "mark@zzo.com"
50
+ },
51
+ {
52
+ "name": "Mark Trostler",
53
+ "email": "mark@zzo.com"
54
+ },
55
+ {
56
+ "name": "Friedel Ziegelmayer",
57
+ "email": "friedel.ziegelmayer@gmail.com"
58
+ },
59
+ {
60
+ "name": "dignifiedquire",
61
+ "email": "dignifiedquire@gmail.com"
62
+ },
63
+ {
64
+ "name": "Filipe Guerra",
65
+ "email": "alias.mac@gmail.com"
66
+ },
67
+ {
68
+ "name": "Aymeric Beaumet",
69
+ "email": "aymeric@beaumet.me"
70
+ },
71
+ {
72
+ "name": "Julien Sanchez",
73
+ "email": "julien.sanchez@lim.eu"
74
+ },
75
+ {
76
+ "name": "Marko Vuksanovic",
77
+ "email": "markovuksanovic@gmail.com"
78
+ },
79
+ {
80
+ "name": "Michał Gołębiowski",
81
+ "email": "m.goleb@gmail.com"
82
+ },
83
+ {
84
+ "name": "Michał Gołębiowski",
85
+ "email": "m.goleb@gmail.com"
86
+ },
87
+ {
88
+ "name": "Parashuram N",
89
+ "email": "code@r.nparashuram.com"
90
+ },
91
+ {
92
+ "name": "Timo Tijhof",
93
+ "email": "krinklemail@gmail.com"
94
+ },
95
+ {
96
+ "name": "Jeff Cross",
97
+ "email": "middlefloor@gmail.com"
98
+ },
99
+ {
100
+ "name": "Joe Doyle",
101
+ "email": "valdain@gmail.com"
102
+ }
103
+ ],
104
+ "gitHead": "4d0268e4a9691be92173f8e8845fc2c903c00797",
105
+ "bugs": {
106
+ "url": "https://github.com/karma-runner/karma-chrome-launcher/issues"
107
+ },
108
+ "homepage": "https://github.com/karma-runner/karma-chrome-launcher#readme",
109
+ "_id": "karma-chrome-launcher@0.2.0",
110
+ "_shasum": "bab12f5f2f4b2f62914a677f29fceca99c090eba",
111
+ "_from": "karma-chrome-launcher@*",
112
+ "_npmVersion": "2.11.2",
113
+ "_nodeVersion": "0.10.38",
114
+ "_npmUser": {
115
+ "name": "dignifiedquire",
116
+ "email": "dignifiedquire@gmail.com"
117
+ },
118
+ "dist": {
119
+ "shasum": "bab12f5f2f4b2f62914a677f29fceca99c090eba",
120
+ "tarball": "http://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-0.2.0.tgz"
121
+ },
122
+ "maintainers": [
123
+ {
124
+ "name": "vojtajina",
125
+ "email": "vojta.jina+npm@gmail.com"
126
+ },
127
+ {
128
+ "name": "zzo",
129
+ "email": "mark@zzo.com"
130
+ },
131
+ {
132
+ "name": "dignifiedquire",
133
+ "email": "dignifiedquire@gmail.com"
134
+ },
135
+ {
136
+ "name": "karmarunnerbot",
137
+ "email": "karmarunnerbot@gmail.com"
138
+ }
139
+ ],
140
+ "directories": {},
141
+ "_resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-0.2.0.tgz"
142
+ }
@@ -0,0 +1,53 @@
1
+ var expect = require('chai').expect
2
+ var sinon = require('sinon')
3
+
4
+ var launcher = require('../index')
5
+
6
+ describe('isJSFlags()', function () {
7
+ var isJSFlags = launcher.test.isJSFlags
8
+
9
+ it('should return true if flag begins with --js-flags=', function () {
10
+ expect(isJSFlags('--js-flags=--expose-gc')).to.be.eql(true)
11
+ expect(isJSFlags('--js-flags="--expose-gc"')).to.be.eql(true)
12
+ expect(isJSFlags("--js-flags='--expose-gc'")).to.be.eql(true)
13
+ })
14
+
15
+ it('should return false if flag does not begin with --js-flags=', function () {
16
+ expect(isJSFlags(' --js-flags=--expose-gc')).to.be.eql(false)
17
+ expect(isJSFlags('--js-flags"--expose-gc"')).to.be.eql(false)
18
+ expect(isJSFlags('--jsflags="--expose-gc"')).to.be.eql(false)
19
+ })
20
+ })
21
+
22
+ describe('sanitizeJSFlags()', function () {
23
+ var sanitizeJSFlags = launcher.test.sanitizeJSFlags
24
+
25
+ it('should do nothing if flags are not contained in quotes', function () {
26
+ expect(sanitizeJSFlags('--js-flags=--expose-gc')).to.be.eql('--js-flags=--expose-gc')
27
+ })
28
+
29
+ it('should symmetrically remove single or double quote if wraps all flags', function () {
30
+ expect(sanitizeJSFlags("--js-flags='--expose-gc'")).to.be.eql('--js-flags=--expose-gc')
31
+ expect(sanitizeJSFlags('--js-flags="--expose-gc"')).to.be.eql('--js-flags=--expose-gc')
32
+ })
33
+
34
+ it('should NOT remove anything if the flags are not contained within quote', function () {
35
+ expect(sanitizeJSFlags('--js-flags=--expose-gc="true"')).to.be.eql('--js-flags=--expose-gc="true"')
36
+ expect(sanitizeJSFlags("--js-flags=--expose-gc='true'")).to.be.eql("--js-flags=--expose-gc='true'")
37
+ })
38
+ })
39
+
40
+ describe('canaryGetOptions', function () {
41
+ var canaryGetOptions = launcher.test.canaryGetOptions
42
+
43
+ it('should return a merged version of --js-flags', function () {
44
+ var parent = sinon.stub().returns(['-incognito'])
45
+ var context = {}
46
+ var url = 'http://localhost:9876'
47
+ var args = {flags: ['--js-flags="--expose-gc"']}
48
+ expect(canaryGetOptions.call(context, url, args, parent)).to.be.eql([
49
+ '-incognito',
50
+ '--js-flags=--expose-gc --nocrankshaft --noopt'
51
+ ])
52
+ })
53
+ })
@@ -105,4 +105,70 @@ describe("hooch", function() {
105
105
  expect($('[data-select-display]').html()).toEqual('Strong Stuff');
106
106
  expect($('form').prop('action')).toMatch('strong/url');
107
107
  })
108
+
109
+ describe('Sorter',function(){
110
+ beforeEach(function(){
111
+ $sorter = affix('div[data-sorter][style="width: 300px;"]')
112
+ $sort_elem_a = $sorter.affix('div#a[style="width: 100px; height: 100px; position:relative; float:left;"]')
113
+ $sort_elem_b = $sorter.affix('div#b[style="width: 100px; height: 100px; position:relative; float:left;"]')
114
+ $sort_elem_c = $sorter.affix('div#c[style="width: 100px; height: 100px; position:relative; float:left;"]')
115
+ $sort_elem_d = $sorter.affix('div#d[style="width: 100px; height: 100px; position:relative; float:left;"]')
116
+
117
+ sorter = new hooch.Sorter($sorter)
118
+ sort_elem_a = $.grep(sorter.sort_elements, function(elem,i){
119
+ return 'a' == elem.$sort_element.attr('id')
120
+ })[0]
121
+ sort_elem_b = $.grep(sorter.sort_elements, function(elem,i){
122
+ return 'b' == elem.$sort_element.attr('id')
123
+ })[0]
124
+ sort_elem_c = $.grep(sorter.sort_elements, function(elem,i){
125
+ return 'c' == elem.$sort_element.attr('id')
126
+ })[0]
127
+ sort_elem_d = $.grep(sorter.sort_elements, function(elem,i){
128
+ return 'd' == elem.$sort_element.attr('id')
129
+ })[0]
130
+ })
131
+ it('sets the correct sort geometry', function(){
132
+ //The fixtures for this test float horizontally into a grid three-wide, therefore the sorter should choose a 'Grid'
133
+ expect(sorter.mode).toEqual('Grid')
134
+ })
135
+ it('Handles mousedown on a sort element', function(){
136
+ sort_elem_a.onMousedown({which: 1, originalEvent: {pageY: 10, pageX: 10}})
137
+ //We set the dragging element for the sorter to be element 'a'
138
+ expect(sorter.dragging_element.$sort_element.attr('id')).toEqual('a')
139
+ //We created a placeholder for element a
140
+ expect(sort_elem_a.placeholder.is_placeholder).toBe(true)
141
+ var elem_before_b = sort_elem_b.$sort_element.prev()
142
+ //The dom element for the placeholder had it's id removed to avoid duplication
143
+ expect(elem_before_b.attr('id')).toBeUndefined()
144
+ //The dom element for the placeholder is now in the dom just before 'b', holding the place of the real 'a' as it is being dragged
145
+ expect(elem_before_b.is(sort_elem_a.placeholder.$sort_element)).toBe(true)
146
+ //The real element 'a' is now attached directly to the body
147
+ expect(sort_elem_a.$sort_element.parent()[0].nodeName).toEqual('BODY')
148
+ })
149
+ it('Handles mousemove when dragging an element', function(){
150
+ sort_elem_a.onMousedown({which: 1, originalEvent: {pageY: 10, pageX: 10}})
151
+ sorter.onMousemove({originalEvent: {pageY: 10, pageX: 110}})
152
+ var elem_before_c = sort_elem_c.$sort_element.prev()
153
+ //The dom element for the placeholder is now in the dom just before 'c'
154
+ expect(elem_before_c.is(sort_elem_a.placeholder.$sort_element)).toBe(true)
155
+ //element 'b' is now the first in line, since a has shifted one forward
156
+ expect(sorter.$sorter.children(':first').attr('id')).toEqual('b')
157
+ })
158
+ it('Handles dragging below the bottom of the grid', function(){
159
+ sort_elem_a.onMousedown({which: 1, originalEvent: {pageY: 10, pageX: 10}})
160
+ sorter.onMousemove({originalEvent: {pageY: 210, pageX: 10}})
161
+ last_elem = sorter.$sorter.children(':last')
162
+ //Dragging below the bottom of the grid puts the placeholder in the last place in the list
163
+ expect(sort_elem_a.placeholder.$sort_element.is(last_elem))
164
+ })
165
+ it('Handles dropping an element', function(){
166
+ sort_elem_a.onMousedown({which: 1, originalEvent: {pageY: 10, pageX: 10}})
167
+ sorter.onMousemove({originalEvent: {pageY: 210, pageX: 10}})
168
+ sorter.removeDraggingElement()
169
+ last_elem = sorter.$sorter.children(':last')
170
+ //Now the real element 'a' is in last place after being dragged below the sorter
171
+ expect(sort_elem_a.$sort_element.is(last_elem))
172
+ })
173
+ })
108
174
  });
data/lib/hooch/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Hooch
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hooch
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Draut
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-09 00:00:00.000000000 Z
11
+ date: 2015-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -149,6 +149,7 @@ files:
149
149
  - jasmine/jasmine-fixture-1.3.1/vendor/js/jquery-1.11.0.js
150
150
  - jasmine/jasmine-fixture-1.3.1/vendor/js/jquery-1.8.3.js
151
151
  - jasmine/jasmine-fixture-1.3.1/vendor/js/jquery-2.1.0.js
152
+ - jasmine/jasmine-fixture.js
152
153
  - jasmine/jquery.js
153
154
  - jasmine/karma.conf.js
154
155
  - jasmine/lib/jasmine-2.3.4/boot.js
@@ -186,6 +187,39 @@ files:
186
187
  - jasmine/node_modules/jasmine-core/lib/jasmine-core/node_boot.js
187
188
  - jasmine/node_modules/jasmine-core/package.json
188
189
  - jasmine/node_modules/jasmine-core/requirements.txt
190
+ - jasmine/node_modules/karma-chrome-launcher/CHANGELOG.md
191
+ - jasmine/node_modules/karma-chrome-launcher/LICENSE
192
+ - jasmine/node_modules/karma-chrome-launcher/README.md
193
+ - jasmine/node_modules/karma-chrome-launcher/examples/simple/index.spec.js
194
+ - jasmine/node_modules/karma-chrome-launcher/examples/simple/karma.conf.js
195
+ - jasmine/node_modules/karma-chrome-launcher/gruntfile.js
196
+ - jasmine/node_modules/karma-chrome-launcher/index.js
197
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/.bin/which
198
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/index.js
199
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/license
200
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/index.js
201
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/license
202
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/package.json
203
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/node_modules/null-check/readme.md
204
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/package.json
205
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/fs-access/readme.md
206
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/.travis.yml
207
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/LICENSE
208
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/README.md
209
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/bin/which
210
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/LICENSE
211
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/README.md
212
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/index.js
213
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/LICENSE-MIT
214
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/README.md
215
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/index.js
216
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/node_modules/is-relative/package.json
217
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/node_modules/is-absolute/package.json
218
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/package.json
219
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/test/basic.js
220
+ - jasmine/node_modules/karma-chrome-launcher/node_modules/which/which.js
221
+ - jasmine/node_modules/karma-chrome-launcher/package.json
222
+ - jasmine/node_modules/karma-chrome-launcher/test/jsflags.spec.js
189
223
  - jasmine/node_modules/karma-jasmine/LICENSE
190
224
  - jasmine/node_modules/karma-jasmine/README.md
191
225
  - jasmine/node_modules/karma-jasmine/integration-tests.sh
@@ -3310,7 +3344,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
3310
3344
  version: '0'
3311
3345
  requirements: []
3312
3346
  rubyforge_project:
3313
- rubygems_version: 2.4.6
3347
+ rubygems_version: 2.4.5.1
3314
3348
  signing_key:
3315
3349
  specification_version: 4
3316
3350
  summary: Tools for building a browser UI. Get the good stuff.