styled_inputs 0.0.5 → 0.1.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.
data/CHANGELOG.rdoc ADDED
@@ -0,0 +1,27 @@
1
+ == master
2
+
3
+ == 0.1.0 / 2008-12-14
4
+
5
+ * Remove the PluginAWeek namespace
6
+ * Update tests to use ActionView::TestCase
7
+
8
+ == 0.0.5 / 2008-06-22
9
+
10
+ * Remove log files from gems
11
+
12
+ == 0.0.4 / 2008-06-03
13
+
14
+ * Add support for Rails 2.0+
15
+
16
+ == 0.0.3 / 2008-06-01
17
+
18
+ * Remove dependency on set_or_append
19
+
20
+ == 0.0.2 / 2008-05-05
21
+
22
+ * Updated documentation
23
+
24
+ == 0.0.1 / 2007-08-17
25
+
26
+ * Add documentation
27
+ * Convert dos newlines to unix newlines
File without changes
@@ -4,21 +4,21 @@
4
4
 
5
5
  == Resources
6
6
 
7
- Wiki
8
-
9
- * http://wiki.pluginaweek.org/Styled_inputs
10
-
11
7
  API
12
8
 
13
9
  * http://api.pluginaweek.org/styled_inputs
14
10
 
11
+ Bugs
12
+
13
+ * http://pluginaweek.lighthouseapp.com/projects/13289-styled_inputs
14
+
15
15
  Development
16
16
 
17
- * http://dev.pluginaweek.org/browser/trunk/styled_inputs
17
+ * http://github.com/pluginaweek/styled_inputs
18
18
 
19
19
  Source
20
20
 
21
- * http://svn.pluginaweek.org/trunk/styled_inputs
21
+ * git://github.com/pluginaweek/styled_inputs.git
22
22
 
23
23
  == Description
24
24
 
@@ -40,6 +40,15 @@ specified is the type of input being generated.
40
40
  text_field(:person, :name) # => <input class="text" id="person_name" name="person[name]" size="30" type="text" />
41
41
  hidden_field(:person, :name) # => <input class="hidden" id="person_name" name="person[name]" type="hidden" />
42
42
 
43
+ == Testing
44
+
45
+ Before you can run any tests, the following gem must be installed:
46
+ * plugin_test_helper[http://github.com/pluginaweek/plugin_test_helper]
47
+
48
+ To run against a specific version of Rails:
49
+
50
+ rake test RAILS_FRAMEWORK_ROOT=/path/to/rails
51
+
43
52
  == Dependencies
44
53
 
45
54
  * Rails 2.0 or later
data/Rakefile CHANGED
@@ -3,46 +3,54 @@ require 'rake/rdoctask'
3
3
  require 'rake/gempackagetask'
4
4
  require 'rake/contrib/sshpublisher'
5
5
 
6
- PKG_NAME = 'styled_inputs'
7
- PKG_VERSION = '0.0.5'
8
- PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
9
- RUBY_FORGE_PROJECT = 'pluginaweek'
10
-
11
- desc 'Default: run unit tests.'
6
+ spec = Gem::Specification.new do |s|
7
+ s.name = 'styled_inputs'
8
+ s.version = '0.1.0'
9
+ s.platform = Gem::Platform::RUBY
10
+ s.summary = 'Adds automated styling of input fields with css classes'
11
+
12
+ s.files = FileList['{lib,test}/**/*'] + %w(CHANGELOG.rdoc init.rb LICENSE Rakefile README.rdoc) - FileList['test/app_root/{log,log/*,script,script/*}']
13
+ s.require_path = 'lib'
14
+ s.has_rdoc = true
15
+ s.test_files = Dir['test/**/*_test.rb']
16
+
17
+ s.author = 'Aaron Pfeifer'
18
+ s.email = 'aaron@pluginaweek.org'
19
+ s.homepage = 'http://www.pluginaweek.org'
20
+ s.rubyforge_project = 'pluginaweek'
21
+ end
22
+
23
+ desc 'Default: run all tests.'
12
24
  task :default => :test
13
25
 
14
- desc 'Test the styled_inputs plugin.'
26
+ desc "Test the #{spec.name} plugin."
15
27
  Rake::TestTask.new(:test) do |t|
16
28
  t.libs << 'lib'
17
- t.pattern = 'test/**/*_test.rb'
29
+ t.test_files = spec.test_files
18
30
  t.verbose = true
19
31
  end
20
32
 
21
- desc 'Generate documentation for the styled_inputs plugin.'
33
+ begin
34
+ require 'rcov/rcovtask'
35
+ namespace :test do
36
+ desc "Test the #{spec.name} plugin with Rcov."
37
+ Rcov::RcovTask.new(:rcov) do |t|
38
+ t.libs << 'lib'
39
+ t.test_files = spec.test_files
40
+ t.rcov_opts << '--exclude="^(?!lib/)"'
41
+ t.verbose = true
42
+ end
43
+ end
44
+ rescue LoadError
45
+ end
46
+
47
+ desc "Generate documentation for the #{spec.name} plugin."
22
48
  Rake::RDocTask.new(:rdoc) do |rdoc|
23
49
  rdoc.rdoc_dir = 'rdoc'
24
- rdoc.title = 'StyledInputs'
50
+ rdoc.title = spec.name
25
51
  rdoc.template = '../rdoc_template.rb'
26
52
  rdoc.options << '--line-numbers' << '--inline-source'
27
- rdoc.rdoc_files.include('README')
28
- rdoc.rdoc_files.include('lib/**/*.rb')
29
- end
30
-
31
- spec = Gem::Specification.new do |s|
32
- s.name = PKG_NAME
33
- s.version = PKG_VERSION
34
- s.platform = Gem::Platform::RUBY
35
- s.summary = 'Adds automated styling of input fields with css classes'
36
-
37
- s.files = FileList['{lib,test}/**/*'].to_a - FileList['test/app_root/log/*'].to_a + %w(CHANGELOG init.rb MIT-LICENSE Rakefile README)
38
- s.require_path = 'lib'
39
- s.autorequire = 'styled_inputs'
40
- s.has_rdoc = true
41
- s.test_files = Dir['test/**/*_test.rb']
42
-
43
- s.author = 'Aaron Pfeifer'
44
- s.email = 'aaron@pluginaweek.org'
45
- s.homepage = 'http://www.pluginaweek.org'
53
+ rdoc.rdoc_files.include('README.rdoc', 'CHANGELOG.rdoc', 'LICENSE', 'lib/**/*.rb')
46
54
  end
47
55
 
48
56
  Rake::GemPackageTask.new(spec) do |p|
@@ -51,14 +59,14 @@ Rake::GemPackageTask.new(spec) do |p|
51
59
  p.need_zip = true
52
60
  end
53
61
 
54
- desc 'Publish the beta gem'
62
+ desc 'Publish the beta gem.'
55
63
  task :pgem => [:package] do
56
- Rake::SshFilePublisher.new('aaron@pluginaweek.org', '/home/aaron/gems.pluginaweek.org/public/gems', 'pkg', "#{PKG_FILE_NAME}.gem").upload
64
+ Rake::SshFilePublisher.new('aaron@pluginaweek.org', '/home/aaron/gems.pluginaweek.org/public/gems', 'pkg', "#{spec.name}-#{spec.version}.gem").upload
57
65
  end
58
66
 
59
- desc 'Publish the API documentation'
67
+ desc 'Publish the API documentation.'
60
68
  task :pdoc => [:rdoc] do
61
- Rake::SshDirPublisher.new('aaron@pluginaweek.org', "/home/aaron/api.pluginaweek.org/public/#{PKG_NAME}", 'rdoc').upload
69
+ Rake::SshDirPublisher.new('aaron@pluginaweek.org', "/home/aaron/api.pluginaweek.org/public/#{spec.name}", 'rdoc').upload
62
70
  end
63
71
 
64
72
  desc 'Publish the API docs and gem'
@@ -71,10 +79,10 @@ task :release => [:gem, :package] do
71
79
  ruby_forge = RubyForge.new.configure
72
80
  ruby_forge.login
73
81
 
74
- %w( gem tgz zip ).each do |ext|
75
- file = "pkg/#{PKG_FILE_NAME}.#{ext}"
82
+ %w(gem tgz zip).each do |ext|
83
+ file = "pkg/#{spec.name}-#{spec.version}.#{ext}"
76
84
  puts "Releasing #{File.basename(file)}..."
77
85
 
78
- ruby_forge.add_release(RUBY_FORGE_PROJECT, PKG_NAME, PKG_VERSION, file)
86
+ ruby_forge.add_release(spec.rubyforge_project, spec.name, spec.version, file)
79
87
  end
80
88
  end
@@ -1,21 +1,22 @@
1
- module PluginAWeek #:nodoc:
2
- module StyledInputs
3
- module Extensions #:nodoc:
4
- module InstanceTag
5
- def self.included(base) #:nodoc:
6
- base.class_eval do
7
- alias_method_chain :tag, :styled_inputs
8
- end
9
- end
10
-
11
- def tag_with_styled_inputs(name, options, *args) #:nodoc:
12
- tag_without_styled_inputs(name, styled_input(name, options), *args)
1
+ module StyledInputs
2
+ module Extensions #:nodoc:
3
+ # Adds support for hooking calls to +tag+ for form fields
4
+ module InstanceTag
5
+ def self.included(base) #:nodoc:
6
+ base.class_eval do
7
+ alias_method_chain :tag, :styled_inputs
13
8
  end
14
9
  end
10
+
11
+ # Ensure that the options are updated for input tags before generating
12
+ # the html for the tag
13
+ def tag_with_styled_inputs(name, options, *args) #:nodoc:
14
+ tag_without_styled_inputs(name, styled_input(name, options), *args)
15
+ end
15
16
  end
16
17
  end
17
18
  end
18
19
 
19
20
  ActionView::Helpers::InstanceTag.class_eval do
20
- include PluginAWeek::StyledInputs::Extensions::InstanceTag
21
+ include StyledInputs::Extensions::InstanceTag
21
22
  end
@@ -1,21 +1,22 @@
1
- module PluginAWeek #:nodoc:
2
- module StyledInputs
3
- module Extensions #:nodoc:
4
- module TagHelper
5
- def self.included(base) #:nodoc:
6
- base.class_eval do
7
- alias_method_chain :tag, :styled_inputs
8
- end
9
- end
10
-
11
- def tag_with_styled_inputs(name, options = nil, *args) #:nodoc:
12
- tag_without_styled_inputs(name, styled_input(name, options), *args)
1
+ module StyledInputs
2
+ module Extensions #:nodoc:
3
+ # Adds support for hooking calls to +tag+
4
+ module TagHelper
5
+ def self.included(base) #:nodoc:
6
+ base.class_eval do
7
+ alias_method_chain :tag, :styled_inputs
13
8
  end
14
9
  end
10
+
11
+ # Ensure that the options are updated for input tags before generating
12
+ # the html for the tag
13
+ def tag_with_styled_inputs(name, options = nil, *args) #:nodoc:
14
+ tag_without_styled_inputs(name, styled_input(name, options), *args)
15
+ end
15
16
  end
16
17
  end
17
18
  end
18
19
 
19
20
  ActionView::Helpers::TagHelper.class_eval do
20
- include PluginAWeek::StyledInputs::Extensions::TagHelper
21
+ include StyledInputs::Extensions::TagHelper
21
22
  end
data/lib/styled_inputs.rb CHANGED
@@ -1,46 +1,46 @@
1
1
  require 'styled_inputs/extensions/tag_helper'
2
2
  require 'styled_inputs/extensions/instance_tag'
3
3
 
4
- module PluginAWeek #:nodoc:
5
- # Automatically adds css classes to input tags so that fields can be
6
- # easily styled.
7
- #
8
- # Tag examples:
9
- #
10
- # text_field_tag('name') # => <input class="text" id="name" name="name" type="text" />
11
- # hidden_field_tag('name') # => <input class="hidden" id="name" name="name" type="hidden" />
12
- # radio_button_tag('agree', 1) # => <input class="radio" id="agree_1" name="agree" type="radio" value="1" />
13
- #
14
- # Form helper examples:
15
- #
16
- # text_field(:person, :name) # => <input class="text" id="person_name" name="person[name]" size="30" type="text" />
17
- # hidden_field(:person, :name) # => <input class="hidden" id="person_name" name="person[name]" type="hidden" />
18
- # radio_button(:person, :agree, 1) # => <input class="radio" id="person_agree_1" name="person[agree]" type="radio" value="1" />
19
- #
20
- # If you specify additional classes when creating a tag, the automated css
21
- # classes will be prepended to the current ones. For example,
22
- #
23
- # text_field_tag('name', :class => 'selected') # => <input class="text selected" id="name" name="name" type="text" />
24
- # text_field_tag('name', :class => 'selected shadow') # => <input class="text selected shadow" id="name" name="name" type="text" />
25
- module StyledInputs
26
- # Appends the input type to the value currently stored in the html options
27
- # for the tag.
28
- def styled_input(name, options = nil)
29
- options = (options || {}).stringify_keys
30
-
31
- if name.to_s == 'input' && options.include?('type')
32
- options['class'] = (options['class'].to_s + " #{options['type']}").strip
33
- end
34
-
35
- options
4
+ # Automatically adds css classes to input tags so that fields can be
5
+ # easily styled.
6
+ #
7
+ # == Tag examples
8
+ #
9
+ # text_field_tag('name') # => <input class="text" id="name" name="name" type="text" />
10
+ # hidden_field_tag('name') # => <input class="hidden" id="name" name="name" type="hidden" />
11
+ # radio_button_tag('agree', 1) # => <input class="radio" id="agree_1" name="agree" type="radio" value="1" />
12
+ #
13
+ # == Form helper examples
14
+ #
15
+ # text_field(:person, :name) # => <input class="text" id="person_name" name="person[name]" size="30" type="text" />
16
+ # hidden_field(:person, :name) # => <input class="hidden" id="person_name" name="person[name]" type="hidden" />
17
+ # radio_button(:person, :agree, 1) # => <input class="radio" id="person_agree_1" name="person[agree]" type="radio" value="1" />
18
+ #
19
+ # == Merging options
20
+ #
21
+ # If you specify additional classes when creating a tag, the automated css
22
+ # classes will be prepended to the current ones. For example,
23
+ #
24
+ # text_field_tag('name', :class => 'selected') # => <input class="text selected" id="name" name="name" type="text" />
25
+ # text_field_tag('name', :class => 'selected shadow') # => <input class="text selected shadow" id="name" name="name" type="text" />
26
+ module StyledInputs
27
+ # Appends the input type to the value currently stored in the html options
28
+ # for the tag.
29
+ def styled_input(name, options = nil)
30
+ options = (options || {}).stringify_keys
31
+
32
+ if name.to_s == 'input' && options.include?('type')
33
+ options['class'] = (options['class'].to_s + " #{options['type']}").strip
36
34
  end
35
+
36
+ options
37
37
  end
38
38
  end
39
39
 
40
40
  ActionController::Base.class_eval do
41
- helper PluginAWeek::StyledInputs
41
+ helper StyledInputs
42
42
  end
43
43
 
44
44
  ActionView::Helpers::InstanceTag.class_eval do
45
- include PluginAWeek::StyledInputs
45
+ include StyledInputs
46
46
  end
@@ -0,0 +1,43 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class FormHelperTest < ActionView::TestCase
4
+ class Person
5
+ attr_accessor :name,
6
+ :agree,
7
+ :picture,
8
+ :secret
9
+ end
10
+
11
+ tests StyledInputs
12
+
13
+ def setup
14
+ @person = Person.new
15
+ end
16
+
17
+ def test_should_style_text_field
18
+ assert_equal '<input class="text" id="person_name" name="person[name]" size="30" type="text" />', text_field(:person, :name)
19
+ end
20
+
21
+ def test_should_style_password_field
22
+ assert_equal '<input class="password" id="person_secret" name="person[secret]" size="30" type="password" />', password_field(:person, :secret)
23
+ end
24
+
25
+ def test_should_style_hidden_field
26
+ assert_equal '<input class="hidden" id="person_name" name="person[name]" type="hidden" />', hidden_field(:person, :name)
27
+ end
28
+
29
+ def test_should_style_file_field
30
+ assert_equal '<input class="file" id="person_picture" name="person[picture]" size="30" type="file" />', file_field(:person, :picture)
31
+ end
32
+
33
+ def test_should_style_check_box
34
+ expected =
35
+ '<input class="checkbox" id="person_agree" name="person[agree]" type="checkbox" value="1" />' +
36
+ '<input class="hidden" name="person[agree]" type="hidden" value="0" />'
37
+ assert_equal expected, check_box(:person, :agree)
38
+ end
39
+
40
+ def test_should_style_radio_button
41
+ assert_equal '<input class="radio" id="person_agree_1" name="person[agree]" type="radio" value="1" />', radio_button(:person, :agree, 1)
42
+ end
43
+ end
@@ -0,0 +1,42 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class FormTagHelperTest < ActionView::TestCase
4
+ tests StyledInputs
5
+
6
+ def test_should_style_text_field_tag
7
+ assert_equal '<input class="text" id="name" name="name" type="text" />', text_field_tag('name')
8
+ end
9
+
10
+ def test_should_style_hidden_field_tag
11
+ assert_equal '<input class="hidden" id="name" name="name" type="hidden" />', hidden_field_tag('name')
12
+ end
13
+
14
+ def test_should_style_file_field_tag
15
+ assert_equal '<input class="file" id="picture" name="picture" type="file" />', file_field_tag('picture')
16
+ end
17
+
18
+ def test_should_style_password_field_tag
19
+ assert_equal '<input class="password" id="secret" name="secret" type="password" />', password_field_tag('secret')
20
+ end
21
+
22
+ def test_should_style_check_box_tag
23
+ assert_equal '<input class="checkbox" id="agree" name="agree" type="checkbox" value="1" />', check_box_tag('agree')
24
+ end
25
+
26
+ def test_should_style_radio_button_tag
27
+ assert_equal '<input class="radio" id="agree_1" name="agree" type="radio" value="1" />', radio_button_tag('agree', 1)
28
+ end
29
+
30
+ def test_should_style_submit_tag
31
+ assert_equal '<input class="submit" name="commit" type="submit" value="Submit" />', submit_tag('Submit')
32
+ end
33
+
34
+ def test_should_style_image_submit_tag
35
+ assert_equal '<input class="image" src="button.png" type="image" />', image_submit_tag('button.png')
36
+ end
37
+
38
+ private
39
+ def path_to_image(source)
40
+ source
41
+ end
42
+ end
@@ -0,0 +1,39 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class StyledInputsTest < ActionView::TestCase
4
+ tests StyledInputs
5
+
6
+ def test_should_not_style_input_if_tag_is_not_input
7
+ expected = {}
8
+ assert_equal expected, styled_input('td', expected)
9
+ end
10
+
11
+ def test_should_not_style_input_if_correct_type_but_tag_is_not_input
12
+ expected = {'type' => 'text'}
13
+ assert_equal expected, styled_input('td', expected)
14
+ end
15
+
16
+ def test_should_style_input_if_tag_is_input
17
+ expected = {'type' => 'text', 'class' => 'text'}
18
+ assert_equal expected, styled_input('input', {'type' => 'text'})
19
+ end
20
+
21
+ def test_should_style_input_if_tag_is_symbolic_input
22
+ expected = {'type' => 'text', 'class' => 'text'}
23
+ assert_equal expected, styled_input(:input, {'type' => 'text'})
24
+ end
25
+
26
+ def test_should_not_style_input_if_tag_is_input_but_type_not_specified
27
+ expected = {}
28
+ assert_equal expected, styled_input('input', expected)
29
+ end
30
+
31
+ def test_should_append_style_if_class_is_already_populated
32
+ expected = {'type' => 'text', 'class' => 'selected text'}
33
+ assert_equal expected, styled_input('input', {'type' => 'text', 'class' => 'selected'})
34
+ end
35
+
36
+ def test_should_style_general_tag_builder
37
+ assert_equal '<input class="text" type="text" />', tag('input', {'type' => 'text'})
38
+ end
39
+ end
@@ -0,0 +1,21 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class TagHelperTest < ActionView::TestCase
4
+ tests StyledInputs
5
+
6
+ def test_should_allow_no_options_to_be_specified
7
+ assert_equal '<br />', tag('br')
8
+ end
9
+
10
+ def test_should_allow_options_to_be_specified
11
+ assert_equal '<input class="text" disabled="disabled" type="text" />', tag('input', {:type => 'text', :disabled => true})
12
+ end
13
+
14
+ def test_should_allow_open_to_be_specified
15
+ assert_equal '<br>', tag('br', nil, true)
16
+ end
17
+
18
+ def test_should_allow_escape_to_be_specified
19
+ assert_equal '<img src="open &amp; shut.png" />', tag('img', {:src => 'open &amp; shut.png'}, false, false)
20
+ end
21
+ end
data/test/test_helper.rb CHANGED
@@ -1,7 +1,4 @@
1
- require 'test/unit'
1
+ # Load the plugin testing framework
2
+ $:.unshift("#{File.dirname(__FILE__)}/../../plugin_test_helper/lib")
2
3
  require 'rubygems'
3
- require 'action_controller'
4
- require 'action_view'
5
-
6
- $:.unshift(File.dirname(__FILE__) + '/../lib')
7
- require File.dirname(__FILE__) + '/../init'
4
+ require 'plugin_test_helper'
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: styled_inputs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aaron Pfeifer
8
- autorequire: styled_inputs
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-06-22 00:00:00 -04:00
12
+ date: 2008-12-14 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -22,18 +22,22 @@ extensions: []
22
22
  extra_rdoc_files: []
23
23
 
24
24
  files:
25
- - lib/styled_inputs.rb
26
25
  - lib/styled_inputs
27
26
  - lib/styled_inputs/extensions
28
27
  - lib/styled_inputs/extensions/tag_helper.rb
29
28
  - lib/styled_inputs/extensions/instance_tag.rb
30
- - test/styled_inputs_test.rb
29
+ - lib/styled_inputs.rb
31
30
  - test/test_helper.rb
32
- - CHANGELOG
31
+ - test/helpers
32
+ - test/helpers/tag_helper_test.rb
33
+ - test/helpers/styled_inputs_test.rb
34
+ - test/helpers/form_helper_test.rb
35
+ - test/helpers/form_tag_helper_test.rb
36
+ - CHANGELOG.rdoc
33
37
  - init.rb
34
- - MIT-LICENSE
38
+ - LICENSE
35
39
  - Rakefile
36
- - README
40
+ - README.rdoc
37
41
  has_rdoc: true
38
42
  homepage: http://www.pluginaweek.org
39
43
  post_install_message:
@@ -55,10 +59,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
59
  version:
56
60
  requirements: []
57
61
 
58
- rubyforge_project:
59
- rubygems_version: 1.1.1
62
+ rubyforge_project: pluginaweek
63
+ rubygems_version: 1.2.0
60
64
  signing_key:
61
65
  specification_version: 2
62
66
  summary: Adds automated styling of input fields with css classes
63
67
  test_files:
64
- - test/styled_inputs_test.rb
68
+ - test/helpers/tag_helper_test.rb
69
+ - test/helpers/styled_inputs_test.rb
70
+ - test/helpers/form_helper_test.rb
71
+ - test/helpers/form_tag_helper_test.rb
data/CHANGELOG DELETED
@@ -1,23 +0,0 @@
1
- *SVN*
2
-
3
- *0.0.5* (June 22nd, 2008)
4
-
5
- * Remove log files from gems
6
-
7
- *0.0.4* (June 3rd, 2008)
8
-
9
- * Add support for Rails 2.0+
10
-
11
- *0.0.3* (June 1st, 2008)
12
-
13
- * Remove dependency on set_or_append
14
-
15
- *0.0.2* (May 5th, 2008)
16
-
17
- * Updated documentation
18
-
19
- *0.0.1* (August 17th, 2007)
20
-
21
- * Add documentation
22
-
23
- * Convert dos newlines to unix newlines
@@ -1,150 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class StyledInputsTest < Test::Unit::TestCase
4
- include PluginAWeek::StyledInputs
5
- include ActionView::Helpers::TagHelper
6
-
7
- def test_should_not_style_input_if_tag_is_not_input
8
- expected = {}
9
- assert_equal expected, styled_input('td', expected)
10
- end
11
-
12
- def test_should_not_style_input_if_correct_type_but_tag_is_not_input
13
- expected = {'type' => 'text'}
14
- assert_equal expected, styled_input('td', expected)
15
- end
16
-
17
- def test_should_style_input_if_tag_is_input
18
- expected = {'type' => 'text', 'class' => 'text'}
19
- assert_equal expected, styled_input('input', {'type' => 'text'})
20
- end
21
-
22
- def test_should_style_input_if_tag_is_symbolic_input
23
- expected = {'type' => 'text', 'class' => 'text'}
24
- assert_equal expected, styled_input(:input, {'type' => 'text'})
25
- end
26
-
27
- def test_should_not_style_input_if_tag_is_input_but_type_not_specified
28
- expected = {}
29
- assert_equal expected, styled_input('input', expected)
30
- end
31
-
32
- def test_should_append_style_if_class_is_already_populated
33
- expected = {'type' => 'text', 'class' => 'selected text'}
34
- assert_equal expected, styled_input('input', {'type' => 'text', 'class' => 'selected'})
35
- end
36
-
37
- def test_should_style_general_tag_builder
38
- assert_equal '<input class="text" type="text" />', tag('input', {'type' => 'text'})
39
- end
40
- end
41
-
42
- class FormTagHelperTest < Test::Unit::TestCase
43
- include PluginAWeek::StyledInputs
44
- include ActionView::Helpers::TagHelper
45
- include ActionView::Helpers::FormTagHelper
46
- include ActionView::Helpers::FormHelper
47
-
48
- def test_should_style_text_field_tag
49
- assert_equal '<input class="text" id="name" name="name" type="text" />', text_field_tag('name')
50
- end
51
-
52
- def test_should_style_hidden_field_tag
53
- assert_equal '<input class="hidden" id="name" name="name" type="hidden" />', hidden_field_tag('name')
54
- end
55
-
56
- def test_should_style_file_field_tag
57
- assert_equal '<input class="file" id="picture" name="picture" type="file" />', file_field_tag('picture')
58
- end
59
-
60
- def test_should_style_password_field_tag
61
- assert_equal '<input class="password" id="secret" name="secret" type="password" />', password_field_tag('secret')
62
- end
63
-
64
- def test_should_style_check_box_tag
65
- assert_equal '<input class="checkbox" id="agree" name="agree" type="checkbox" value="1" />', check_box_tag('agree')
66
- end
67
-
68
- def test_should_style_radio_button_tag
69
- assert_equal '<input class="radio" id="agree_1" name="agree" type="radio" value="1" />', radio_button_tag('agree', 1)
70
- end
71
-
72
- def test_should_style_submit_tag
73
- assert_equal '<input class="submit" name="commit" type="submit" value="Submit" />', submit_tag('Submit')
74
- end
75
-
76
- def test_should_style_image_submit_tag
77
- assert_equal '<input class="image" src="button.png" type="image" />', image_submit_tag('button.png')
78
- end
79
-
80
- private
81
- def path_to_image(source)
82
- source
83
- end
84
- end
85
-
86
- class FormHelperTest < Test::Unit::TestCase
87
- class Person
88
- attr_accessor :name,
89
- :agree,
90
- :picture,
91
- :secret
92
- end
93
-
94
- include PluginAWeek::StyledInputs
95
- include ActionView::Helpers::TagHelper
96
- include ActionView::Helpers::FormTagHelper
97
- include ActionView::Helpers::FormHelper
98
-
99
- def setup
100
- @person = Person.new
101
- end
102
-
103
- def test_should_style_text_field
104
- assert_equal '<input class="text" id="person_name" name="person[name]" size="30" type="text" />', text_field(:person, :name)
105
- end
106
-
107
- def test_should_style_password_field
108
- assert_equal '<input class="password" id="person_secret" name="person[secret]" size="30" type="password" />', password_field(:person, :secret)
109
- end
110
-
111
- def test_should_style_hidden_field
112
- assert_equal '<input class="hidden" id="person_name" name="person[name]" type="hidden" />', hidden_field(:person, :name)
113
- end
114
-
115
- def test_should_style_file_field
116
- assert_equal '<input class="file" id="person_picture" name="person[picture]" size="30" type="file" />', file_field(:person, :picture)
117
- end
118
-
119
- def test_should_style_check_box
120
- expected =
121
- '<input class="checkbox" id="person_agree" name="person[agree]" type="checkbox" value="1" />' +
122
- '<input class="hidden" name="person[agree]" type="hidden" value="0" />'
123
- assert_equal expected, check_box(:person, :agree)
124
- end
125
-
126
- def test_should_style_radio_button
127
- assert_equal '<input class="radio" id="person_agree_1" name="person[agree]" type="radio" value="1" />', radio_button(:person, :agree, 1)
128
- end
129
- end
130
-
131
- class TagHelperTest < Test::Unit::TestCase
132
- include PluginAWeek::StyledInputs
133
- include ActionView::Helpers::TagHelper
134
-
135
- def test_should_allow_no_options_to_be_specified
136
- assert_equal '<br />', tag('br')
137
- end
138
-
139
- def test_should_allow_options_to_be_specified
140
- assert_equal '<input class="text" disabled="disabled" type="text" />', tag('input', {:type => 'text', :disabled => true})
141
- end
142
-
143
- def test_should_allow_open_to_be_specified
144
- assert_equal '<br>', tag('br', nil, true)
145
- end
146
-
147
- def test_should_allow_escape_to_be_specified
148
- assert_equal '<img src="open &amp; shut.png" />', tag('img', {:src => 'open &amp; shut.png'}, false, false)
149
- end
150
- end