hooch 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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.