pluginaweek-tiny_mce_helper 0.3.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.
@@ -0,0 +1,31 @@
1
+ # Setup default folders
2
+ require 'fileutils'
3
+ FileUtils.rm_rf('test/app_root/config')
4
+ FileUtils.cp_r('test/app_root/config_bak', 'test/app_root/config')
5
+
6
+ # Load the plugin testing framework
7
+ $:.unshift("#{File.dirname(__FILE__)}/../../plugin_test_helper/lib")
8
+ require 'rubygems'
9
+ require 'plugin_test_helper'
10
+
11
+ EXPANDED_RAILS_ROOT = File.expand_path(Rails.root)
12
+
13
+ ActiveSupport::TestCase.class_eval do
14
+ protected
15
+ def live?
16
+ ENV['LIVE']
17
+ end
18
+
19
+ def assert_html_equal(expected, actual)
20
+ assert_equal expected.strip.gsub(/\n\s*/, ''), actual.strip.gsub(/\n\s*/, '')
21
+ end
22
+ end
23
+
24
+ # Allow skipping of tests that require mocha
25
+ def uses_mocha(description)
26
+ require 'rubygems'
27
+ require 'mocha'
28
+ yield
29
+ rescue LoadError
30
+ $stderr.puts "Skipping #{description} tests. `gem install mocha` and try again."
31
+ end
@@ -0,0 +1,168 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
2
+
3
+ uses_mocha 'mocking install/update' do
4
+ class TinyMceInstallerTest < ActiveSupport::TestCase
5
+ def setup
6
+ # Set up public path
7
+ FileUtils.mkdir_p("#{Rails.root}/public/javascripts")
8
+ end
9
+
10
+ def test_should_save_latest_version_to_default_target
11
+ TinyMCEHelper.expects(:open).with('http://sourceforge.net/project/showfiles.php?group_id=103281&package_id=111430').returns(open('test/files/sourceforge.html')) unless live?
12
+ TinyMCEHelper.expects(:open).with('http://prdownloads.sourceforge.net/tinymce/tinymce_3_2_2_3.zip?download').yields(open("#{EXPANDED_RAILS_ROOT}/../files/tinymce_3_2_2_3.zip")) unless live?
13
+ TinyMCEHelper.install(:force => true)
14
+
15
+ assert File.exists?("#{Rails.root}/public/javascripts/tiny_mce")
16
+
17
+ source = File.read("#{Rails.root}/public/javascripts/tiny_mce/tiny_mce_src.js")
18
+
19
+ if live?
20
+ assert source.include?('tinymce')
21
+ else
22
+ assert source.include?("majorVersion : '3'");
23
+ assert source.include?("minorVersion : '2.2.3'");
24
+ end
25
+ end
26
+
27
+ def test_should_allow_custom_version
28
+ TinyMCEHelper.expects(:open).with('http://prdownloads.sourceforge.net/tinymce/tinymce_3_2_2.zip?download').yields(open("#{EXPANDED_RAILS_ROOT}/../files/tinymce_3_2_2.zip")) unless live?
29
+ TinyMCEHelper.install(:version => '3.2.2', :force => true)
30
+
31
+ assert File.exists?("#{Rails.root}/public/javascripts/tiny_mce")
32
+
33
+ source = File.read("#{Rails.root}/public/javascripts/tiny_mce/tiny_mce_src.js")
34
+ assert source.include?("majorVersion : '3'");
35
+ assert source.include?("minorVersion : '2.2'");
36
+ end
37
+
38
+ def test_should_allow_custom_target
39
+ TinyMCEHelper.expects(:open).with('http://sourceforge.net/project/showfiles.php?group_id=103281&package_id=111430').returns(open('test/files/sourceforge.html')) unless live?
40
+ TinyMCEHelper.expects(:open).with('http://prdownloads.sourceforge.net/tinymce/tinymce_3_2_2_3.zip?download').yields(open("#{EXPANDED_RAILS_ROOT}/../files/tinymce_3_2_2_3.zip")) unless live?
41
+ TinyMCEHelper.install(:target => 'public/javascripts/tinymce', :force => true)
42
+
43
+ assert File.exists?("#{Rails.root}/public/javascripts/tinymce")
44
+ end
45
+
46
+ def teardown
47
+ FileUtils.rm_rf("#{Rails.root}/public")
48
+ end
49
+ end
50
+
51
+ class TinyMceInstallerExistingTest < ActiveSupport::TestCase
52
+ def setup
53
+ # Set up public path
54
+ FileUtils.mkdir_p("#{Rails.root}/public/javascripts/tiny_mce")
55
+ end
56
+
57
+ def test_should_prompt_user
58
+ expects_file_requests
59
+
60
+ STDIN.expects(:gets).returns("y\n")
61
+ TinyMCEHelper.install
62
+ end
63
+
64
+ def test_should_skip_if_user_skips
65
+ TinyMCEHelper.expects(:open).never
66
+
67
+ STDIN.expects(:gets).returns("n\n")
68
+ TinyMCEHelper.install
69
+
70
+ assert !File.exists?("#{Rails.root}/public/javascripts/tiny_mce/tiny_mce_src.js")
71
+ end
72
+
73
+ def test_should_not_skip_if_user_does_not_skip
74
+ expects_file_requests
75
+
76
+ STDIN.expects(:gets).returns("y\n")
77
+ TinyMCEHelper.install
78
+
79
+ assert File.exists?("#{Rails.root}/public/javascripts/tiny_mce/tiny_mce_src.js")
80
+ end
81
+
82
+ def test_should_continue_prompting_user_if_invalid_response_is_typed
83
+ expects_file_requests
84
+
85
+ STDIN.expects(:gets).times(2).returns("k\n", "y\n")
86
+ TinyMCEHelper.install
87
+
88
+ assert File.exists?("#{Rails.root}/public/javascripts/tiny_mce/tiny_mce_src.js")
89
+ end
90
+
91
+ def test_should_overwrite_if_forced
92
+ expects_file_requests
93
+
94
+ STDIN.expects(:gets).never
95
+ TinyMCEHelper.install(:force => true)
96
+
97
+ assert File.exists?("#{Rails.root}/public/javascripts/tiny_mce/tiny_mce_src.js")
98
+ end
99
+
100
+ def teardown
101
+ FileUtils.rm_rf("#{Rails.root}/public")
102
+ end
103
+
104
+ private
105
+ def expects_file_requests
106
+ unless live?
107
+ TinyMCEHelper.expects(:open).with('http://sourceforge.net/project/showfiles.php?group_id=103281&package_id=111430').returns(open('test/files/sourceforge.html'))
108
+ TinyMCEHelper.expects(:open).with('http://prdownloads.sourceforge.net/tinymce/tinymce_3_2_2_3.zip?download').yields(open("#{EXPANDED_RAILS_ROOT}/../files/tinymce_3_2_2_3.zip"))
109
+ end
110
+ end
111
+ end
112
+
113
+ class TinyMceUpdaterTest < ActiveSupport::TestCase
114
+ def setup
115
+ TinyMCEHelper.expects(:open).with('http://wiki.moxiecode.com/index.php/TinyMCE:Configuration').returns(open('test/files/sourceforge.html')) unless live?
116
+
117
+ # Track valid options
118
+ @original_valid_options = TinyMCEHelper.valid_options.dup
119
+ end
120
+
121
+ def test_should_update_options_if_options_configuration_doesnt_exist
122
+ FileUtils.rm("#{Rails.root}/config/tiny_mce_options.yml")
123
+ TinyMCEHelper.update_options
124
+
125
+ assert File.exists?("#{Rails.root}/config/tiny_mce_options.yml")
126
+ options = YAML.load(File.read(TinyMCEHelper::OPTIONS_FILE_PATH))
127
+ assert_instance_of Array, options
128
+ end
129
+
130
+ def test_should_update_options_if_options_configuration_exists
131
+ File.truncate("#{Rails.root}/config/tiny_mce_options.yml", 0)
132
+ TinyMCEHelper.update_options
133
+
134
+ assert File.exists?("#{Rails.root}/config/tiny_mce_options.yml")
135
+ options = YAML.load(File.open(TinyMCEHelper::OPTIONS_FILE_PATH))
136
+ assert_instance_of Array, options
137
+ end
138
+
139
+ def teardown
140
+ TinyMCEHelper.valid_options = @original_valid_options
141
+ FileUtils.cp("#{Rails.root}/config_bak/tiny_mce_options.yml", "#{Rails.root}/config")
142
+ end
143
+ end
144
+ end
145
+
146
+ class TinyMceUninstallerTest < ActiveSupport::TestCase
147
+ def setup
148
+ # Set up public path
149
+ FileUtils.mkdir_p("#{Rails.root}/public/javascripts")
150
+ end
151
+
152
+ def test_uninstall_should_remove_options_configuration
153
+ TinyMCEHelper.uninstall
154
+ assert !File.exists?("#{Rails.root}/config/tiny_mce_options.yml")
155
+ end
156
+
157
+ def test_uninstall_should_remove_tinymce_source
158
+ FileUtils.mkdir("#{Rails.root}/public/javascripts/tiny_mce")
159
+ TinyMCEHelper.uninstall
160
+
161
+ assert !File.exists?("#{Rails.root}/public/javascripts/tiny_mce")
162
+ end
163
+
164
+ def teardown
165
+ FileUtils.rm_rf("#{Rails.root}/public")
166
+ FileUtils.cp("#{Rails.root}/config_bak/tiny_mce_options.yml", "#{Rails.root}/config")
167
+ end
168
+ end
@@ -0,0 +1,2 @@
1
+ # Uninstall TinyMCE
2
+ TinyMCEHelper.uninstall
metadata ADDED
@@ -0,0 +1,76 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pluginaweek-tiny_mce_helper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0
5
+ platform: ruby
6
+ authors:
7
+ - Aaron Pfeifer
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-06-08 00:00:00 -07:00
13
+ default_executable:
14
+ dependencies: []
15
+
16
+ description: Adds helper methods for creating the TinyMCE initialization script in Rails
17
+ email: aaron@pluginaweek.org
18
+ executables: []
19
+
20
+ extensions: []
21
+
22
+ extra_rdoc_files: []
23
+
24
+ files:
25
+ - lib/tiny_mce_helper.rb
26
+ - tasks/tiny_mce_helper_tasks.rake
27
+ - test/files
28
+ - test/files/wiki.html
29
+ - test/files/tinymce_3_2_2_3.zip
30
+ - test/files/sourceforge.html
31
+ - test/files/tinymce_3_2_2.zip
32
+ - test/unit
33
+ - test/unit/tiny_mce_helper_test.rb
34
+ - test/helpers
35
+ - test/helpers/tiny_mce_helper_test.rb
36
+ - test/app_root
37
+ - test/app_root/config_bak
38
+ - test/app_root/config_bak/tiny_mce_options.yml
39
+ - test/app_root/config
40
+ - test/app_root/config/tiny_mce_options.yml
41
+ - test/test_helper.rb
42
+ - CHANGELOG.rdoc
43
+ - init.rb
44
+ - install.rb
45
+ - Rakefile
46
+ - README.rdoc
47
+ - uninstall.rb
48
+ has_rdoc: true
49
+ homepage: http://www.pluginaweek.org
50
+ post_install_message:
51
+ rdoc_options: []
52
+
53
+ require_paths:
54
+ - lib
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: "0"
60
+ version:
61
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: "0"
66
+ version:
67
+ requirements: []
68
+
69
+ rubyforge_project: pluginaweek
70
+ rubygems_version: 1.2.0
71
+ signing_key:
72
+ specification_version: 2
73
+ summary: Adds helper methods for creating the TinyMCE initialization script in Rails
74
+ test_files:
75
+ - test/unit/tiny_mce_helper_test.rb
76
+ - test/helpers/tiny_mce_helper_test.rb