peteshow 0.7.6 → 0.7.7

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.
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "peteshow",
3
- "version": "0.7.6",
3
+ "version": "0.7.7",
4
4
  "description": "Plugin for filling out forms with fake data for testing purposes",
5
5
  "keywords": [
6
6
  "filler",
data/peteshow.gemspec CHANGED
@@ -4,13 +4,13 @@ package = open('package.json').read
4
4
  json = JSON.parse(package)
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = json['name']
7
+ s.name = json['name']
8
8
  s.version = json['version']
9
9
  s.author = json['author']['name']
10
10
  s.email = json['author']['email']
11
- s.summary = 'Javascript plugin for filling out forms with fake data '
11
+ s.summary = 'Javascript plugin for filling out forms with fake data'
12
12
  s.description = 'Javascript plugin for filling out forms with fake data for testing purposes'
13
- s.homepage = json['homepage']
13
+ s.homepage = json['homepage']
14
14
 
15
15
  s.files = `git ls-files`.split($\)
16
16
  s.require_paths = ['lib']
data/src/peteshow-core.js CHANGED
@@ -6,7 +6,7 @@
6
6
  'input[type=email], input[name*=email]' : Peteshow.randomEmail(),
7
7
  'input[name*=number], input[type=number]' : Peteshow.randomNumber(8),
8
8
  'input[class*=number], input[class*=decimal]' : Peteshow.randomNumber(8),
9
- 'input[name*=date]' : Peteshow.randomDate(),
9
+ 'input[type=date]' : Peteshow.randomDate(),
10
10
  'input[name*=phone]' : Faker.PhoneNumber.phoneNumberFormat(5),
11
11
  'input[name*=first_name]' : Faker.Name.firstName(),
12
12
  'input[name*=last_name]' : Faker.Name.lastName(),
@@ -39,10 +39,31 @@
39
39
 
40
40
  $('body').append($div)
41
41
 
42
- Peteshow.commands()
42
+ initCommands()
43
43
  }
44
44
 
45
- Peteshow.keydown = function(e) {
45
+ Peteshow.destroy = function() {
46
+ Peteshow.hide()
47
+ $div.remove();
48
+ }
49
+
50
+ Peteshow.hide = function() {
51
+ $div.hide()
52
+ $div.removeClass('active')
53
+ }
54
+
55
+ Peteshow.toggle = function() {
56
+ $tools.toggle()
57
+ $div.toggleClass('active')
58
+ }
59
+
60
+ Peteshow.show = function() {
61
+ $div.show()
62
+ $tools.show()
63
+ if(!$div.hasClass('active')) $div.addClass('active')
64
+ }
65
+
66
+ handleKeypress = function(e) {
46
67
  var key = (typeof e.which == 'number') ? e.which : e.keyCode,
47
68
  code = String.fromCharCode(e.keyCode)
48
69
 
@@ -53,8 +74,7 @@
53
74
  if(e.metaKey) return
54
75
 
55
76
  if(e.keyCode == 192) { // `
56
- $tools.toggle()
57
- $div.toggleClass('active')
77
+ Peteshow.toggle()
58
78
  }
59
79
 
60
80
  var action = $("[data-command='"+code+"']"),
@@ -63,7 +83,7 @@
63
83
  if(action.length > 0 && visible) action.click()
64
84
  }
65
85
 
66
- Peteshow.commands = function() {
86
+ initCommands = function() {
67
87
  var base = "<li><a data-command='F' href='#' id='fill-out-forms'>Fill Out Forms</a></li>"
68
88
  base += "<li><a data-command='Q' href='#' id='fill-out-forms-and-submit'>Fill Out and Submit</a></li>"
69
89
  base += outputLocalStorage()
@@ -71,16 +91,16 @@
71
91
 
72
92
  $div.find($commands).html(_options.commands + base)
73
93
 
74
- Peteshow.events()
94
+ bindEvents()
75
95
  }
76
96
 
77
- Peteshow.events = function() {
97
+ bindEvents = function() {
78
98
  var commands = [
79
- [ $toggle, function() { $div.toggleClass('active'); $tools.toggle() } ],
99
+ [ $toggle, function() { Peteshow.toggle } ],
80
100
  [ $('#fill-out-forms'), function() { Peteshow.fillOutForms() } ],
81
101
  [ $('#fill-out-forms-and-submit'), function() { Peteshow.fillOutForms(); Peteshow.submitForm() } ],
82
- [ $('#clear-localstorage'), function() { clearLocalStorage() } ],
83
- [ $('#hide-peteshow'), function() { $div.hide() } ]
102
+ [ $('#clear-localstorage'), function() { Peteshow.clearLocalStorage() } ],
103
+ [ $('#hide-peteshow'), function() { Peteshow.hide() } ]
84
104
  ]
85
105
 
86
106
  $.each(commands, function() {
@@ -97,7 +117,7 @@
97
117
 
98
118
  Peteshow.submitForm = function() {
99
119
  $(_options.form).submit()
100
- $('.simple_form').last().submit()
120
+ $('form[name*=registration], .simple_form').submit()
101
121
  $('form').last().submit()
102
122
  };
103
123
 
@@ -123,7 +143,7 @@
123
143
  // apply rules
124
144
  var rules = $.extend(true, getDefaultRules(), _options.rules || {})
125
145
  reused = {},
126
- ls = getLocalStorage(),
146
+ ls = Peteshow.getLocalStorage(),
127
147
  local = (ls != null || ls != undefined) ? ls : {}
128
148
 
129
149
  // apply value to rule element, if visible and not in ignore list
@@ -162,7 +182,7 @@
162
182
 
163
183
  // apply localstorage rule values if they exist and on the right page
164
184
  if(localStorage.peteshow != undefined || localStorage.peteshow != null) {
165
- $.each(getLocalStorage(), function(element,v) {
185
+ $.each(Peteshow.getLocalStorage(), function(element,v) {
166
186
  var url = _options.reuse[element]
167
187
 
168
188
  if(window.location.href.indexOf(url) > -1)
@@ -170,7 +190,7 @@
170
190
  })
171
191
 
172
192
  // reinit menu
173
- Peteshow.commands()
193
+ initCommands()
174
194
  }
175
195
  }
176
196
 
@@ -179,7 +199,7 @@
179
199
  if(localStorage.peteshow != undefined || localStorage.peteshow != null) {
180
200
  base += "<li class='list'>"
181
201
  base += "<div class='inner'>"
182
- $.each(getLocalStorage(), function(k,v) {
202
+ $.each(Peteshow.getLocalStorage(), function(k,v) {
183
203
  base += '<div>' + k + '<span>' + v + '</span></div>'
184
204
  })
185
205
  base += "</div>"
@@ -190,13 +210,13 @@
190
210
  return base
191
211
  }
192
212
 
193
- getLocalStorage = function() {
213
+ Peteshow.getLocalStorage = function() {
194
214
  return JSON.parse(localStorage.getItem('peteshow'))
195
215
  }
196
216
 
197
- clearLocalStorage = function() {
217
+ Peteshow.clearLocalStorage = function() {
198
218
  localStorage.removeItem('peteshow')
199
- Peteshow.commands() // reinit menu to remove ls
219
+ initCommands()
200
220
  }
201
221
 
202
222
  randomSelectValue = function(i,select) {
@@ -235,6 +255,5 @@
235
255
  })
236
256
  }
237
257
 
238
- $(document).keydown(Peteshow.keydown);
239
-
258
+ $(document).keydown(handleKeypress);
240
259
  }(jQuery)
@@ -31,7 +31,7 @@
31
31
  }
32
32
 
33
33
  Peteshow.randomDate = function(format) {
34
- if(typeof format === 'undefined' || format === null) format = 'mm/dd/yy'
34
+ if(typeof format === 'undefined' || format === null) format = 'yy-mm-dd'
35
35
 
36
36
  var start = new Date(1942, 1, 1),
37
37
  end = new Date(1970, 1, 1)
data/src/peteshow.js CHANGED
@@ -3,7 +3,7 @@ var Peteshow = {};
3
3
  Peteshow.defaults = {
4
4
  emailPrefix : 'test-',
5
5
  emailDomain : 'example.com',
6
- form : 'form[class*=registration], .simple_form, form',
6
+ form : '',
7
7
  blur : false,
8
8
 
9
9
  rules : {},
data/tests/index.html CHANGED
@@ -9,14 +9,15 @@
9
9
  <body>
10
10
  <div id='qunit'></div>
11
11
  <div id='qunit-fixture'>
12
- <form class='registration'>
12
+ <form name='random'>
13
13
  <input name='password' type='password' />
14
14
  <input name='text' type='text' />
15
15
  <input name='email' type='email' />
16
+ <input name='email2' type='text' />
16
17
  <input name='number' type='number' >
18
+ <input name='date ' type='date' >
17
19
  <input name='decimal' type='text' >
18
20
  <input name='number' type='text' >
19
- <input name='date' type='text' />
20
21
  <input name='phone' type='text' />
21
22
  <input name='tel' type='tel' >
22
23
  <input name='first_name' type='text /'>
@@ -48,11 +49,12 @@
48
49
  <script src='../src/peteshow.js'></script>
49
50
  <script src='../src/peteshow-core.js'></script>
50
51
  <script src='../src/peteshow-helpers.js'></script>
51
- <script src='../vendor/peteshow.plugin.js'></script>
52
52
 
53
53
  <script src='./suite/core.js'></script>
54
54
  <script src='./suite/helpers.js'></script>
55
55
  <script src='./suite/keybindings.js'></script>
56
+ <script src='./suite/options.js'></script>
57
+ <script src='./suite/localstorage.js'></script>
56
58
  </div>
57
59
  </body>
58
60
  </html>
data/tests/suite/core.js CHANGED
@@ -1,20 +1,29 @@
1
- QUnit.test('peteshow dom setup', function(assert) {
2
- assert.equal(1, $('form').length, 'form exists')
3
- assert.equal(1, $('#peteshow').length, 'peteshow exists')
1
+ module('core plugin', {
2
+ setup: function() {
3
+ Peteshow.init({
4
+ rules : {'input[name*=zip]' : '60611', }
5
+ });
6
+ },
7
+ teardown: function() {
8
+ Peteshow.destroy();
9
+ }
10
+ });
11
+
12
+ test('should have been added to the dom', function() {
13
+ equal(1, $('#peteshow').length, 'peteshow exists')
4
14
  });
5
15
 
6
- QUnit.test('fill out form functionality', function(assert) {
16
+ test('should have valid values after filling out forms', function() {
7
17
  Peteshow.fillOutForms();
8
18
 
9
19
  NUMBER_REGEX = /^[0-9]*$/
10
- TEXT_REGEX = /^[a-zA-Z0-9.,\/_ -]+$/
20
+ TEXT_REGEX = /^[a-zA-Z0-9.',\/_ -]+$/
11
21
  EMAIL_REGEX = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i
12
- DATE_REGEX = /^\d{2}([\//-])\d{2}\1\d{4}$/
22
+ DATE_REGEX = /^(19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$/
13
23
  PHONE_NUMBER_REGEX = /\(\d{3}\)\d{3}-\d{4}/
14
24
 
15
25
  // from plugin
16
- assert.equal('PL25 3JR', $('input[name*=zip]').val(), 'rule loaded from plugin, string');
17
- assert.equal(true, TEXT_REGEX.test($('input[name*=county]').val()), 'rule loaded from plugin, function');
26
+ equal('60611', $('input[name*=zip]').val(), 'rule loaded from plugin, string');
18
27
 
19
28
  // from defaults
20
29
  var fields = {
@@ -22,8 +31,8 @@ QUnit.test('fill out form functionality', function(assert) {
22
31
  'input[type=text]' : TEXT_REGEX,
23
32
  'input[type=email], input[name*=email]' : EMAIL_REGEX,
24
33
  'input[name*=number], input[type=number]' : NUMBER_REGEX,
25
- 'input[name*=date]' : DATE_REGEX,
26
34
  'input[name*=phone]' : PHONE_NUMBER_REGEX,
35
+ 'input[type=date]' : DATE_REGEX,
27
36
  'input[name*=first_name]' : TEXT_REGEX,
28
37
  'input[name*=last_name]' : TEXT_REGEX,
29
38
  'input[name*=company]' : TEXT_REGEX,
@@ -41,9 +50,10 @@ QUnit.test('fill out form functionality', function(assert) {
41
50
  }
42
51
 
43
52
  $.each(fields, function(k,v) {
44
- if(v.hasOwnProperty('source'))
45
- assert.equal(true, v.test($(k).val()), 'testing ' + k + ' regex');
46
- else
47
- assert.equal(v, $(k).val(), 'testing ' + k + ' string');
53
+ if(v.hasOwnProperty('source')) { // is a regex
54
+ equal(true, v.test($(k).val()), 'testing ' + k + ' regex');
55
+ } else {
56
+ equal(v, $(k).val(), 'testing ' + k + ' string');
57
+ }
48
58
  });
49
59
  });
@@ -1,18 +1,19 @@
1
- QUnit.test('peteshow functions exist', function(assert) {
2
- assert.equal(true, $.isPlainObject(Peteshow), 'window.Peteshow exists');
1
+ module('helpers');
2
+
3
+ test('peteshow functions exist', function() {
4
+ equal(true, $.isPlainObject(Peteshow), 'window.Peteshow exists');
3
5
 
4
6
  // helpers exist
5
- assert.equal(true, $.isFunction(Peteshow.randomChars), 'randomChars helper is a function');
6
- assert.equal(true, $.isFunction(Peteshow.randomLetters), 'randomLetershelper is a function');
7
- assert.equal(true, $.isFunction(Peteshow.randomNumberRange), 'randomNumberRange helper is a function');
8
- assert.equal(true, $.isFunction(Peteshow.randomNumber), 'randomNumber helper is a function');
9
- assert.equal(true, $.isFunction(Peteshow.randomDate), 'randomDate helper is a function');
10
- assert.equal(true, $.isFunction(Peteshow.randomEmail), 'randomEmail helper is a function');
11
- assert.equal(true, $.isFunction(Peteshow.formatDate), 'formatDate helper is a function');
7
+ equal(true, $.isFunction(Peteshow.randomChars), 'randomChars helper is a function');
8
+ equal(true, $.isFunction(Peteshow.randomLetters), 'randomLetershelper is a function');
9
+ equal(true, $.isFunction(Peteshow.randomNumberRange), 'randomNumberRange helper is a function');
10
+ equal(true, $.isFunction(Peteshow.randomNumber), 'randomNumber helper is a function');
11
+ equal(true, $.isFunction(Peteshow.randomDate), 'randomDate helper is a function');
12
+ equal(true, $.isFunction(Peteshow.randomEmail), 'randomEmail helper is a function');
13
+ equal(true, $.isFunction(Peteshow.formatDate), 'formatDate helper is a function');
12
14
 
13
15
  // core exists
14
- assert.equal(true, $.isFunction(Peteshow.init), 'init helper is a function');
15
- assert.equal(true, $.isFunction(Peteshow.fillOutForms), 'fillOutForms helper is a function');
16
- assert.equal(true, $.isFunction(Peteshow.submitForm), 'submitForm helper is a function');
16
+ equal(true, $.isFunction(Peteshow.init), 'init helper is a function');
17
+ equal(true, $.isFunction(Peteshow.fillOutForms), 'fillOutForms helper is a function');
18
+ equal(true, $.isFunction(Peteshow.submitForm), 'submitForm helper is a function');
17
19
  });
18
-
@@ -1,13 +1,55 @@
1
- QUnit.test('keybindings work', function(assert) {
1
+ module('keybindings', {
2
+ setup: function() {
3
+ Peteshow.init();
4
+ Peteshow.show();
5
+ },
6
+ teardown: function() {
7
+ Peteshow.destroy();
8
+ }
9
+ });
10
+
11
+ test('should show when backtick is pressed', function() {
12
+ ok($('#peteshow').hasClass('active'));
13
+ });
14
+
15
+ test('should fill out forms when F is pressed', function() {
2
16
  var event = $.Event('keydown');
3
17
 
4
- event.keyCode = 192;
18
+ event.keyCode = 70;
5
19
  $(document).trigger(event);
6
20
 
7
- assert.equal(true, $('#peteshow').hasClass('active'), 'div is shown when backtick is hit');
21
+ ok($('form input').first().val() != '')
22
+ });
23
+
24
+ test('should clear localstorage when R is pressed', function() {
25
+ var event = $.Event('keydown');
26
+
27
+ event.keyCode = 82;
28
+ $(document).trigger(event);
29
+
30
+ ok(localStorage.getItem('peteshow') == null)
31
+ });
32
+
33
+ test('should fill out forms and submit when Q is pressed', function() {
34
+ expect(1);
35
+
36
+ var event = $.Event('keydown');
37
+
38
+ $('form').on('submit', function() {
39
+ ok(true, 'form submitted')
40
+ return false;
41
+ });
42
+
43
+ event.keyCode = 81;
44
+ $(document).trigger(event);
45
+ });
46
+
47
+ test('should hide when H is pressed', function() {
48
+ var event = $.Event('keydown');
8
49
 
9
50
  event.keyCode = 72;
10
51
  $(document).trigger(event);
11
52
 
12
- assert.equal(false, $('#peteshow').is(':visible'), 'div is hidden when H is hit for hide');
53
+ equal(false, $('#peteshow').is(':visible'));
13
54
  });
55
+
@@ -0,0 +1,6 @@
1
+ module('localstorage');
2
+
3
+ test('reusing values from localstorage', function() {
4
+ ok(true)
5
+ });
6
+
@@ -0,0 +1,43 @@
1
+ module('options', {
2
+ setup: function() {
3
+ Peteshow.init({
4
+ form : '#random',
5
+ emailPrefix : 'pete-',
6
+ emailDomain : 'peteshow.com',
7
+ blur : 'true'
8
+ });
9
+ },
10
+ teardown: function() {
11
+ Peteshow.destroy();
12
+ }
13
+ });
14
+
15
+ test('should set email options', function() {
16
+ Peteshow.fillOutForms();
17
+
18
+ var email = $('input[name*=email]').val().split('@')
19
+
20
+ equal(true, /pete-/.test(email[0]), 'emailPrefix can be set')
21
+ equal('peteshow.com', email[1], 'emailDomain can be set')
22
+ });
23
+
24
+ test('should blur after filling out if true', function() {
25
+ expect(1);
26
+
27
+ $('input[type=email]').on('blur', function() {
28
+ ok(true, 'blur functionality works');
29
+ });
30
+
31
+ Peteshow.fillOutForms();
32
+ });
33
+
34
+ test('should fill out custom form name', function() {
35
+ expect(1);
36
+
37
+ $('form[name*=random]').on('submit', function() {
38
+ ok(true, 'submit form works');
39
+ return false
40
+ });
41
+
42
+ Peteshow.submitForm();
43
+ });
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peteshow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.6
5
- prerelease:
4
+ version: 0.7.7
6
5
  platform: ruby
7
6
  authors:
8
7
  - Pete Brousalis
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-07-08 00:00:00.000000000 Z
11
+ date: 2014-07-17 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: Javascript plugin for filling out forms with fake data for testing purposes
15
14
  email: brousapg@gmail.com
@@ -43,34 +42,34 @@ files:
43
42
  - tests/suite/core.js
44
43
  - tests/suite/helpers.js
45
44
  - tests/suite/keybindings.js
45
+ - tests/suite/localstorage.js
46
+ - tests/suite/options.js
46
47
  - vendor/faker.js
47
48
  - vendor/jquery.formatdatetime.js
48
- - vendor/peteshow.plugin.js
49
49
  - vendor/qunit/jquery.js
50
50
  - vendor/qunit/qunit.css
51
51
  - vendor/qunit/qunit.js
52
52
  homepage: http://github.com/brousalis/peteshow/
53
53
  licenses: []
54
+ metadata: {}
54
55
  post_install_message:
55
56
  rdoc_options: []
56
57
  require_paths:
57
58
  - lib
58
59
  required_ruby_version: !ruby/object:Gem::Requirement
59
- none: false
60
60
  requirements:
61
61
  - - ! '>='
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  required_rubygems_version: !ruby/object:Gem::Requirement
65
- none: false
66
65
  requirements:
67
66
  - - ! '>='
68
67
  - !ruby/object:Gem::Version
69
68
  version: '0'
70
69
  requirements: []
71
70
  rubyforge_project:
72
- rubygems_version: 1.8.23
71
+ rubygems_version: 2.2.2
73
72
  signing_key:
74
- specification_version: 3
73
+ specification_version: 4
75
74
  summary: Javascript plugin for filling out forms with fake data
76
75
  test_files: []
@@ -1,33 +0,0 @@
1
- var options = {
2
- email : {
3
- domain: 'onstride.co.uk',
4
- },
5
-
6
- rules : {
7
- 'input[name*=zip]' : 'PL25 3JR',
8
- 'input[name*=county]' : Faker.Address.ukCounty()
9
- },
10
-
11
- reuse : {
12
- 'input[name*=first_name]' : 'contract',
13
- 'input[name*=last_name]' : 'contract',
14
- 'input[name*=birth]' : 'contract'
15
- },
16
-
17
- ignore : [ 'registration_coupon_code' ],
18
-
19
- blur : true,
20
-
21
- force : {
22
- 'input[name*=building_name]' : Peteshow.randomLetters(8),
23
- 'input[name*=line1]' : Faker.Address.streetName(),
24
- 'input[name*=card_brand]' : 'visa',
25
- '#registration_city' : Faker.Address.city(),
26
- },
27
-
28
- filter: ['unemployed', 'self_employment', 'retired_benefits'],
29
- }
30
-
31
- $(function() {
32
- Peteshow.init(options)
33
- });