compages 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.
- data/.project +18 -0
- data/README +180 -0
- data/Rakefile +10 -0
- data/app/controllers/application.rb +4 -0
- data/app/controllers/contents_controller.rb +116 -0
- data/app/controllers/pages_controller.rb +59 -0
- data/app/controllers/render_controller.rb +24 -0
- data/app/helpers/application_helper.rb +6 -0
- data/app/helpers/contents_helper.rb +5 -0
- data/app/helpers/pages_helper.rb +5 -0
- data/app/helpers/render_helper.rb +2 -0
- data/app/models/content.rb +26 -0
- data/app/models/meta_data.rb +3 -0
- data/app/models/page.rb +106 -0
- data/app/models/page_element.rb +9 -0
- data/app/views/contents/_content_preview.rhtml +1 -0
- data/app/views/contents/_contents_list.rhtml +3 -0
- data/app/views/contents/_show_library.rhtml +60 -0
- data/app/views/contents/_write_now.rhtml +42 -0
- data/app/views/layouts/pages.rhtml +24 -0
- data/app/views/layouts/render.rhtml +11 -0
- data/app/views/pages/_change_theme.rhtml +0 -0
- data/app/views/pages/_edit_menu.rhtml +62 -0
- data/app/views/pages/_page_listed.rhtml +13 -0
- data/app/views/pages/_select_theme.rhtml +4 -0
- data/app/views/pages/edit.rhtml +35 -0
- data/app/views/pages/index.rhtml +45 -0
- data/app/views/pages/list.rhtml +41 -0
- data/app/views/pages/list_a.rhtml +40 -0
- data/app/views/pages/welcome.rhtml +27 -0
- data/app/views/render/_blank.rhtml +3 -0
- data/app/views/render/show.rhtml +1 -0
- data/bin/compages +14 -0
- data/config/boot.rb +44 -0
- data/config/database.yml.home +35 -0
- data/config/environment.rb +53 -0
- data/config/environments/development.rb +21 -0
- data/config/environments/production.rb +18 -0
- data/config/environments/test.rb +19 -0
- data/config/routes.rb +32 -0
- data/db/Copia di schema.rb +48 -0
- data/db/migrate/001_create_pages.rb +12 -0
- data/db/migrate/002_create_contents.rb +12 -0
- data/db/migrate/003_create_meta_datas.rb +14 -0
- data/db/migrate/004_create_page_elements.rb +17 -0
- data/db/migrate/005_add_urlnames.rb +15 -0
- data/db/migrate/006_add_sessions.rb +15 -0
- data/db/schema.mysql.sql +65 -0
- data/db/schema.postgresql.sql +65 -0
- data/db/schema.rb +49 -0
- data/db/schema.sqlite.sql +65 -0
- data/db/schema.sqlserver.sql +71 -0
- data/db/schema_version +1 -0
- data/doc/ER-model/v1.dia +0 -0
- data/doc/ER-model/v2.dia +0 -0
- data/doc/ER-model/v3.dia +0 -0
- data/doc/README_FOR_APP +2 -0
- data/doc/esempi/doc-vir/ecds.htm +2362 -0
- data/doc/esempi/doc-vir/ecds_files/search.gif +0 -0
- data/doc/esempi/doc-vir/ecds_files/upld.gif +0 -0
- data/doc/esempi/doc-vir/ecds_files/upld.jpg +0 -0
- data/installer/apache13.conf.example.template +33 -0
- data/installer/apache20.conf.example.template +40 -0
- data/installer/lighttpd.conf.example.template +6 -0
- data/installer/rails_installer_defaults.yml +5 -0
- data/lib/redcloth.rb +1130 -0
- data/lib/render_engine.rb +94 -0
- data/lib/tasks/release.rake +46 -0
- data/public/.htaccess +41 -0
- data/public/404.html +8 -0
- data/public/500.html +8 -0
- data/public/_index.html +277 -0
- data/public/favicon.ico +0 -0
- data/public/images/body_bg.gif +0 -0
- data/public/images/body_bg_short.gif +0 -0
- data/public/images/ie_shadow.png +0 -0
- data/public/images/journal_reflex.gif +0 -0
- data/public/images/journal_shadow.gif +0 -0
- data/public/images/logo_journal_small.bmp +0 -0
- data/public/images/logo_journal_small.png +0 -0
- data/public/images/page_edit_shadow.png +0 -0
- data/public/images/restore_bar.png +0 -0
- data/public/images/spinner.gif +0 -0
- data/public/javascripts/application.js +23 -0
- data/public/javascripts/controls.js +815 -0
- data/public/javascripts/dragdrop.js +913 -0
- data/public/javascripts/effects.js +958 -0
- data/public/javascripts/lowpro.js +307 -0
- data/public/javascripts/prototype.js +2006 -0
- data/public/robots.txt +1 -0
- data/public/stylesheets/compages.css +196 -0
- data/public/stylesheets/editing.css +180 -0
- data/public/stylesheets/editing_ie_filth.css +36 -0
- data/public/themes/Doc_basic/_script.js +342 -0
- data/public/themes/Doc_basic/images/Thumbs.db +0 -0
- data/public/themes/Doc_basic/images/search.gif +0 -0
- data/public/themes/Doc_basic/images/upld.gif +0 -0
- data/public/themes/Doc_basic/images/upld.jpg +0 -0
- data/public/themes/Doc_basic/index.html +114 -0
- data/public/themes/Doc_basic/style.css +1743 -0
- data/public/themes/color7boxes/default2.css +42 -0
- data/public/themes/color7boxes/index.html +40 -0
- data/public/themes/prova/index.html +12 -0
- data/public/zDoc/images/search.gif +0 -0
- data/public/zDoc/images/upld.gif +0 -0
- data/public/zDoc/images/upld.jpg +0 -0
- data/public/zDoc/index.html +176 -0
- data/public/zDoc/script.js +342 -0
- data/public/zDoc/style.css +1741 -0
- data/script/about +3 -0
- data/script/breakpointer +3 -0
- data/script/console +3 -0
- data/script/destroy +3 -0
- data/script/generate +3 -0
- data/script/performance/benchmarker +3 -0
- data/script/performance/profiler +3 -0
- data/script/plugin +3 -0
- data/script/process/reaper +3 -0
- data/script/process/spawner +3 -0
- data/script/runner +3 -0
- data/script/server +3 -0
- data/test/fixtures/contents.yml +5 -0
- data/test/fixtures/meta_datas.yml +5 -0
- data/test/fixtures/page_elements.yml +5 -0
- data/test/fixtures/pages.yml +5 -0
- data/test/functional/contents_controller_test.rb +18 -0
- data/test/functional/pages_controller_test.rb +18 -0
- data/test/functional/render_controller_test.rb +18 -0
- data/test/test_helper.rb +28 -0
- data/test/unit/content_test.rb +10 -0
- data/test/unit/meta_data_test.rb +10 -0
- data/test/unit/page_element_test.rb +10 -0
- data/test/unit/page_test.rb +10 -0
- data/tmp/sessions/ruby_sess.0ced4c30e36477ab +0 -0
- data/tmp/sessions/ruby_sess.20fbe26671422e70 +0 -0
- data/tmp/sessions/ruby_sess.2c72521f3a7e2ba9 +0 -0
- data/tmp/sessions/ruby_sess.4107a69d982a2eb7 +0 -0
- data/tmp/sessions/ruby_sess.573ded9c7fdd9035 +0 -0
- data/tmp/sessions/ruby_sess.5a9767815bb96258 +0 -0
- data/tmp/sessions/ruby_sess.85d723b794005388 +0 -0
- data/tmp/sessions/ruby_sess.875b3b3e3529afdb +0 -0
- data/tmp/sessions/ruby_sess.936766f3a397c88b +0 -0
- data/tmp/sessions/ruby_sess.984e2e4c9a2e7891 +0 -0
- data/tmp/sessions/ruby_sess.a1faebd7448bc45d +0 -0
- data/tmp/sessions/ruby_sess.a415768c7635bc15 +0 -0
- data/tmp/sessions/ruby_sess.b2dadcbe6c1b0add +0 -0
- data/tmp/sessions/ruby_sess.ca9100beb103a428 +0 -0
- data/tmp/sessions/ruby_sess.d649c800a046efde +0 -0
- data/tmp/sessions/ruby_sess.db73bbfafd5a537c +0 -0
- data/tmp/sessions/ruby_sess.e32487b847524df1 +0 -0
- data/tmp/sessions/ruby_sess.f4e45d67828cc437 +0 -0
- data/tmp/sessions/ruby_sess.f5a3f064f2f7a26f +0 -0
- data/tmp/sessions/ruby_sess.ff0c47b35f238cda +0 -0
- data/vendor/plugins/acts_as_urlnameable.tar.gz +0 -0
- data/vendor/plugins/acts_as_urlnameable/LICENSE +19 -0
- data/vendor/plugins/acts_as_urlnameable/README +193 -0
- data/vendor/plugins/acts_as_urlnameable/Rakefile +25 -0
- data/vendor/plugins/acts_as_urlnameable/TODO +5 -0
- data/vendor/plugins/acts_as_urlnameable/db/00x_add_urlnames_table.rb +15 -0
- data/vendor/plugins/acts_as_urlnameable/db/urlnames_table.sql +7 -0
- data/vendor/plugins/acts_as_urlnameable/doc/classes/ActiveRecord/Acts/Urlnameable/ClassMethods.html +167 -0
- data/vendor/plugins/acts_as_urlnameable/doc/classes/ActiveRecord/Acts/Urlnameable/InstanceMethods.html +213 -0
- data/vendor/plugins/acts_as_urlnameable/doc/classes/ActiveRecord/Acts/Urlnameable/SingletonMethods.html +189 -0
- data/vendor/plugins/acts_as_urlnameable/doc/created.rid +1 -0
- data/vendor/plugins/acts_as_urlnameable/doc/files/LICENSE.html +129 -0
- data/vendor/plugins/acts_as_urlnameable/doc/files/README.html +333 -0
- data/vendor/plugins/acts_as_urlnameable/doc/files/TODO.html +121 -0
- data/vendor/plugins/acts_as_urlnameable/doc/files/lib/acts_as_urlnameable_rb.html +101 -0
- data/vendor/plugins/acts_as_urlnameable/doc/fr_class_index.html +29 -0
- data/vendor/plugins/acts_as_urlnameable/doc/fr_file_index.html +30 -0
- data/vendor/plugins/acts_as_urlnameable/doc/fr_method_index.html +34 -0
- data/vendor/plugins/acts_as_urlnameable/doc/index.html +24 -0
- data/vendor/plugins/acts_as_urlnameable/doc/rdoc-style.css +208 -0
- data/vendor/plugins/acts_as_urlnameable/init.rb +3 -0
- data/vendor/plugins/acts_as_urlnameable/lib/acts_as_urlnameable.rb +159 -0
- data/vendor/plugins/acts_as_urlnameable/lib/urlname.rb +3 -0
- data/vendor/plugins/acts_as_urlnameable/test/acts_as_urlnameable_test.rb +233 -0
- data/vendor/plugins/acts_as_urlnameable/test/connection.rb +8 -0
- data/vendor/plugins/acts_as_urlnameable/test/fixtures/article.rb +13 -0
- data/vendor/plugins/acts_as_urlnameable/test/fixtures/articles.yml +62 -0
- data/vendor/plugins/acts_as_urlnameable/test/fixtures/page.rb +14 -0
- data/vendor/plugins/acts_as_urlnameable/test/fixtures/pages.yml +35 -0
- data/vendor/plugins/acts_as_urlnameable/test/fixtures/people.yml +9 -0
- data/vendor/plugins/acts_as_urlnameable/test/fixtures/person.rb +26 -0
- data/vendor/plugins/acts_as_urlnameable/test/fixtures/schema.rb +24 -0
- data/vendor/plugins/acts_as_urlnameable/test/fixtures/section.rb +5 -0
- data/vendor/plugins/acts_as_urlnameable/test/fixtures/sections.yml +9 -0
- data/vendor/plugins/acts_as_urlnameable/test/fixtures/urlnames.yml +153 -0
- data/vendor/plugins/acts_as_urlnameable/test/test_helper.rb +42 -0
- data/vendor/plugins/gems/README +30 -0
- data/vendor/plugins/gems/init.rb +9 -0
- data/vendor/plugins/gems/tasks/gems_tasks.rake +32 -0
- data/vendor/plugins/unobtrusive_javascript/CHANGELOG +72 -0
- data/vendor/plugins/unobtrusive_javascript/README +73 -0
- data/vendor/plugins/unobtrusive_javascript/Rakefile +33 -0
- data/vendor/plugins/unobtrusive_javascript/about.yml +6 -0
- data/vendor/plugins/unobtrusive_javascript/assets/javascripts/lowpro.js +307 -0
- data/vendor/plugins/unobtrusive_javascript/init.rb +21 -0
- data/vendor/plugins/unobtrusive_javascript/install.rb +1 -0
- data/vendor/plugins/unobtrusive_javascript/lib/actionview_helpers_patches.rb +17 -0
- data/vendor/plugins/unobtrusive_javascript/lib/asset_tag_helper_patches.rb +33 -0
- data/vendor/plugins/unobtrusive_javascript/lib/behaviour_caching.rb +70 -0
- data/vendor/plugins/unobtrusive_javascript/lib/controllers/unobtrusive_javascript_controller.rb +52 -0
- data/vendor/plugins/unobtrusive_javascript/lib/prototype_helper_patches.rb +72 -0
- data/vendor/plugins/unobtrusive_javascript/lib/scriptaculous_helper_patches.rb +62 -0
- data/vendor/plugins/unobtrusive_javascript/lib/tag_helper_patches.rb +37 -0
- data/vendor/plugins/unobtrusive_javascript/lib/ujs.rb +32 -0
- data/vendor/plugins/unobtrusive_javascript/lib/ujs/behaviour_helper.rb +62 -0
- data/vendor/plugins/unobtrusive_javascript/lib/ujs/behaviour_script.rb +54 -0
- data/vendor/plugins/unobtrusive_javascript/lib/ujs/behaviour_script_converter.rb +23 -0
- data/vendor/plugins/unobtrusive_javascript/lib/ujs/controller_methods.rb +55 -0
- data/vendor/plugins/unobtrusive_javascript/lib/ujs/helpers.rb +152 -0
- data/vendor/plugins/unobtrusive_javascript/lib/ujs/javascript_proxies.rb +57 -0
- data/vendor/plugins/unobtrusive_javascript/tasks/unobtrusive_javascript_tasks.rake +15 -0
- data/vendor/plugins/unobtrusive_javascript/test/asset_tag_helper_patches_test.rb +32 -0
- data/vendor/plugins/unobtrusive_javascript/test/behaviour_helper_test.rb +180 -0
- data/vendor/plugins/unobtrusive_javascript/test/behaviour_script_converter_test.rb +72 -0
- data/vendor/plugins/unobtrusive_javascript/test/behaviour_script_test.rb +98 -0
- data/vendor/plugins/unobtrusive_javascript/test/config/environment.rb +8 -0
- data/vendor/plugins/unobtrusive_javascript/test/config/routes.rb +4 -0
- data/vendor/plugins/unobtrusive_javascript/test/config/schema.rb +3 -0
- data/vendor/plugins/unobtrusive_javascript/test/controller_methods_test.rb +48 -0
- data/vendor/plugins/unobtrusive_javascript/test/helpers_test.rb +186 -0
- data/vendor/plugins/unobtrusive_javascript/test/javascript_proxies_test.rb +3 -0
- data/vendor/plugins/unobtrusive_javascript/test/lib/ptk/boot.rb +26 -0
- data/vendor/plugins/unobtrusive_javascript/test/lib/ptk/gem/action_controller.rb +11 -0
- data/vendor/plugins/unobtrusive_javascript/test/lib/ptk/gem/action_mailer.rb +4 -0
- data/vendor/plugins/unobtrusive_javascript/test/lib/ptk/gem/active_record.rb +27 -0
- data/vendor/plugins/unobtrusive_javascript/test/lib/ptk/gem/rails.rb +31 -0
- data/vendor/plugins/unobtrusive_javascript/test/lib/ptk/ptk.rb +148 -0
- data/vendor/plugins/unobtrusive_javascript/test/lib/ptk/suite/difference.rb +23 -0
- data/vendor/plugins/unobtrusive_javascript/test/lib/stubs/controller_stub.rb +10 -0
- data/vendor/plugins/unobtrusive_javascript/test/ptk_helper.rb +29 -0
- data/vendor/plugins/unobtrusive_javascript/test/tag_helper_patches_test.rb +59 -0
- data/vendor/plugins/unobtrusive_javascript/test/test_helper.rb +25 -0
- data/vendor/plugins/unobtrusive_javascript/test/unobtrusive_javascript_controller_test.rb +95 -0
- data/vendor/plugins/unobtrusive_javascript/uninstall.rb +1 -0
- data/vendor/redcloth/bin/redcloth +3 -0
- data/vendor/redcloth/doc/CHANGELOG +160 -0
- data/vendor/redcloth/doc/COPYING +25 -0
- data/vendor/redcloth/doc/README +106 -0
- data/vendor/redcloth/doc/REFERENCE +216 -0
- data/vendor/redcloth/doc/make.rb +359 -0
- data/vendor/redcloth/lib/redcloth.rb +1130 -0
- data/vendor/redcloth/run-tests.rb +28 -0
- data/vendor/redcloth/setup.rb +1376 -0
- data/vendor/redcloth/tests/code.yml +105 -0
- data/vendor/redcloth/tests/hard_breaks.yml +26 -0
- data/vendor/redcloth/tests/images.yml +171 -0
- data/vendor/redcloth/tests/instiki.yml +39 -0
- data/vendor/redcloth/tests/links.yml +155 -0
- data/vendor/redcloth/tests/lists.yml +77 -0
- data/vendor/redcloth/tests/markdown.yml +218 -0
- data/vendor/redcloth/tests/poignant.yml +64 -0
- data/vendor/redcloth/tests/table.yml +198 -0
- data/vendor/redcloth/tests/textism.yml +406 -0
- metadata +432 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
require 'action_pack'
|
|
2
|
+
require 'action_controller'
|
|
3
|
+
require 'action_controller/test_process'
|
|
4
|
+
|
|
5
|
+
ActionController::Base.ignore_missing_templates = true
|
|
6
|
+
|
|
7
|
+
if PTK::Configuration.load :routes
|
|
8
|
+
ActionController::Routing::Routes.reload rescue nil
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
class ActionController::Base; def rescue_action(e) raise e end; end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
require 'active_record'
|
|
2
|
+
require 'active_record/fixtures'
|
|
3
|
+
|
|
4
|
+
ActiveRecord::Base.logger = Logger.new(File.join(RAILS_ROOT, 'test.log'))
|
|
5
|
+
|
|
6
|
+
# Load the database.yml from #{plugin_path}/test/config if it exists
|
|
7
|
+
if file = PTK::Configuration.find_path(:database)
|
|
8
|
+
|
|
9
|
+
config = YAML::load_file(file)
|
|
10
|
+
ActiveRecord::Base.establish_connection(config[ENV['DB'] || 'sqlite3'])
|
|
11
|
+
|
|
12
|
+
# Load a schema if it exists
|
|
13
|
+
if schema = PTK::Configuration.find_path(:schema)
|
|
14
|
+
|
|
15
|
+
load(schema)
|
|
16
|
+
|
|
17
|
+
# Setup fixtures if the directory exists
|
|
18
|
+
if fixtures = PTK::Configuration.find_path(:fixtures)
|
|
19
|
+
|
|
20
|
+
PTK::LoadPath.add fixtures
|
|
21
|
+
|
|
22
|
+
Test::Unit::TestCase.fixture_path = fixtures
|
|
23
|
+
Test::Unit::TestCase.use_instantiated_fixtures = false
|
|
24
|
+
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# We require the initializer to setup the environment properly
|
|
2
|
+
unless defined?(Rails::Initializer)
|
|
3
|
+
if File.directory?("#{RAILS_ROOT}/../../../rails")
|
|
4
|
+
require "#{RAILS_ROOT}/../../../rails/railties/lib/initializer"
|
|
5
|
+
else
|
|
6
|
+
require 'rubygems'
|
|
7
|
+
require_gem 'rails'
|
|
8
|
+
require 'initializer'
|
|
9
|
+
end
|
|
10
|
+
Rails::Initializer.run(:set_load_path)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
# We overwrite load_environment so we can have only one file
|
|
14
|
+
module Rails
|
|
15
|
+
class Initializer
|
|
16
|
+
def load_environment
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# We overwrite the default log to be a directory up
|
|
22
|
+
module Rails
|
|
23
|
+
class Configuration
|
|
24
|
+
def default_log_path
|
|
25
|
+
File.join(root_path, "#{environment}.log")
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# We then load it manually
|
|
31
|
+
PTK::Configuration.load :environment
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
require 'singleton'
|
|
2
|
+
|
|
3
|
+
module PTK
|
|
4
|
+
|
|
5
|
+
class Configuration
|
|
6
|
+
class << self
|
|
7
|
+
def load(config, fatal = false)
|
|
8
|
+
if (file = PTK::PathSet.instance.send(config)) == :ignore then false
|
|
9
|
+
elsif File.exists?(file)
|
|
10
|
+
require file
|
|
11
|
+
true
|
|
12
|
+
elsif fatal then raise LoadError, "PTK could not find #{file}"
|
|
13
|
+
else
|
|
14
|
+
STDERR.puts "PTK::WARNING: could not find #{file}"
|
|
15
|
+
false
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def find_path(config, fatal = false)
|
|
20
|
+
if (file = PTK::PathSet.instance.send(config)) == :ignore then false
|
|
21
|
+
elsif File.exists?(file) then file
|
|
22
|
+
elsif fatal then raise LoadError, "PTK could not find #{file}"
|
|
23
|
+
else
|
|
24
|
+
STDERR.puts "PTK::WARNING: could not find #{file}"
|
|
25
|
+
false
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def draw
|
|
30
|
+
yield PTK::PathSet.instance
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
class PathSet
|
|
36
|
+
include Singleton
|
|
37
|
+
|
|
38
|
+
attr_accessor :ptk_prefix
|
|
39
|
+
attr_accessor :config
|
|
40
|
+
attr_accessor :fixtures
|
|
41
|
+
attr_accessor :environment
|
|
42
|
+
attr_accessor :schema
|
|
43
|
+
attr_accessor :database
|
|
44
|
+
attr_accessor :routes
|
|
45
|
+
|
|
46
|
+
def initialize
|
|
47
|
+
self.ptk_prefix = 'ptk'
|
|
48
|
+
self.config = File.join(RAILS_ROOT, 'config')
|
|
49
|
+
self.fixtures = File.join(RAILS_ROOT, 'fixtures')
|
|
50
|
+
|
|
51
|
+
self.environment = File.join(self.config, 'environment.rb')
|
|
52
|
+
|
|
53
|
+
self.database = File.join(self.config, 'database.yml')
|
|
54
|
+
self.schema = File.join(self.config, 'schema.rb')
|
|
55
|
+
|
|
56
|
+
self.routes = File.join(self.config, 'routes.rb')
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
class Initializer
|
|
61
|
+
|
|
62
|
+
# The init.rb in the root directory of the plugin will be loaded by default
|
|
63
|
+
attr_accessor :init
|
|
64
|
+
|
|
65
|
+
# The specific environmental frameworks of a plugin, such as needing the ActionController
|
|
66
|
+
# ActionMailer or ActiveRecord gems to be preloaded. A special requirement called
|
|
67
|
+
# 'environment' will load tests as though they were in the test environment of a normal
|
|
68
|
+
# Rails application.
|
|
69
|
+
attr_accessor :frameworks
|
|
70
|
+
def frameworks
|
|
71
|
+
[@frameworks].flatten
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Suites are test extensions including assertions and various tools for easier testing
|
|
75
|
+
attr_accessor :suites
|
|
76
|
+
def suites
|
|
77
|
+
[@suites].flatten
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# A container for the PathSet instance
|
|
81
|
+
attr_reader :paths
|
|
82
|
+
|
|
83
|
+
def initialize
|
|
84
|
+
self.init = true
|
|
85
|
+
self.frameworks = :none
|
|
86
|
+
self.suites = :all
|
|
87
|
+
@paths = PTK::PathSet.instance
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def self.run(command = :process)
|
|
91
|
+
initializer = PTK::Initializer.new
|
|
92
|
+
yield initializer if block_given?
|
|
93
|
+
initializer.send(command)
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
def process
|
|
97
|
+
initialize_frameworks
|
|
98
|
+
initialize_suites
|
|
99
|
+
initialize_plugin
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def initialize_frameworks
|
|
103
|
+
return if frameworks.include?(:none)
|
|
104
|
+
self.frameworks = [:rails] if frameworks.include?(:rails)
|
|
105
|
+
frameworks.each { |lib| require_ptk File.join('gem', lib.to_s) }
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def initialize_suites
|
|
109
|
+
return if suites.include?(:none)
|
|
110
|
+
self.suites = all_suites if suites.include?(:all)
|
|
111
|
+
suites.each { |lib| require_ptk File.join('suite', lib.to_s) }
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
def initialize_plugin
|
|
115
|
+
return unless self.init
|
|
116
|
+
require File.join(RAILS_ROOT, '..', 'init')
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
protected
|
|
120
|
+
|
|
121
|
+
def all_suites
|
|
122
|
+
Dir.glob(File.join(RAILS_ROOT, 'lib', 'ptk', 'suite', '*.rb')).inject([]) do |a, file|
|
|
123
|
+
a << File.basename(file, '.rb').to_sym
|
|
124
|
+
a
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def require_ptk(library)
|
|
129
|
+
file = paths.ptk_prefix.empty? ? library : File.join(paths.ptk_prefix, library)
|
|
130
|
+
require file
|
|
131
|
+
end
|
|
132
|
+
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
class LoadPath
|
|
136
|
+
|
|
137
|
+
def self.expand(file, *dirs)
|
|
138
|
+
File.join(*([File.expand_path(File.dirname(file))] << dirs))
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def self.add(*dirs)
|
|
142
|
+
path = File.expand_path(File.join(*dirs))
|
|
143
|
+
$:.unshift path
|
|
144
|
+
$:.uniq!
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
end
|
|
148
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
class Test::Unit::TestCase
|
|
2
|
+
|
|
3
|
+
# http://project.ioni.st/post/217#post-217
|
|
4
|
+
#
|
|
5
|
+
# def test_new_publication
|
|
6
|
+
# assert_difference(Publication, :count) do
|
|
7
|
+
# post :create, :publication => {...}
|
|
8
|
+
# # ...
|
|
9
|
+
# end
|
|
10
|
+
# end
|
|
11
|
+
#
|
|
12
|
+
# modified by mabs29 to include arguments
|
|
13
|
+
def assert_difference(object, method = nil, difference = 1, *args)
|
|
14
|
+
initial_value = object.send(method, *args)
|
|
15
|
+
yield
|
|
16
|
+
assert_equal initial_value + difference, object.send(method, *args), "#{object}##{method}"
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def assert_no_difference(object, method, *args, &block)
|
|
20
|
+
assert_difference object, method, 0, *args, &block
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Do not comment out this line; it sets the RAILS_ROOT constant and load paths, not Rails itself
|
|
2
|
+
require File.join(File.dirname(__FILE__), 'lib', 'ptk', 'boot')
|
|
3
|
+
|
|
4
|
+
PTK::Initializer.run do |setup|
|
|
5
|
+
# You can also redefine the paths of certain directories and files, namely:
|
|
6
|
+
#setup.paths.config = File.join(RAILS_ROOT, 'config')
|
|
7
|
+
#setup.paths.fixtures = File.join(RAILS_ROOT, 'fixtures')
|
|
8
|
+
|
|
9
|
+
#setup.paths.database = File.join(setup.paths.config, 'database.yml')
|
|
10
|
+
#setup.paths.schema = File.join(setup.paths.config, 'schema.rb')
|
|
11
|
+
#setup.paths.routes = File.join(setup.paths.config, 'routes.rb')
|
|
12
|
+
#setup.paths.environment = File.join(setup.paths.config, 'environment.rb')
|
|
13
|
+
|
|
14
|
+
# If any of these paths are set to ':ignore', no warnings will appear if they are missing.
|
|
15
|
+
|
|
16
|
+
# Frameworks are the gems from Rails which you need PTK to load for your plugin.
|
|
17
|
+
# The special :rails framework creates a fully-fledged Rails environment and requires
|
|
18
|
+
# the environment.rb file.
|
|
19
|
+
# Valid options are: :action_controller, :action_mailer, :active_record, :rails
|
|
20
|
+
setup.frameworks = :action_controller # :active_record, :action_controller
|
|
21
|
+
|
|
22
|
+
# Extra libraries of assertions and other common methods that provide more testing
|
|
23
|
+
# utilities. To hand-pick which suites you want, uncomment the below
|
|
24
|
+
#setup.suites = :difference
|
|
25
|
+
|
|
26
|
+
# If for some particular reason you do not want your plugin's init to be called
|
|
27
|
+
# at the end of this block, uncomment the below:
|
|
28
|
+
setup.init = false
|
|
29
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
|
2
|
+
|
|
3
|
+
class ContentTagWithJavascriptEventsTest < Test::Unit::TestCase
|
|
4
|
+
include ActionView::Helpers::TagHelper
|
|
5
|
+
|
|
6
|
+
def setup
|
|
7
|
+
@controller = ControllerStub.new
|
|
8
|
+
@request = ActionController::TestRequest.new
|
|
9
|
+
@response = ActionController::TestResponse.new
|
|
10
|
+
get :index
|
|
11
|
+
@output = content_tag('div', 'my test div', {
|
|
12
|
+
:id => 'my_test_div', :class => 'some_class',
|
|
13
|
+
:onclick => 'alert("foo")',
|
|
14
|
+
:onmouseup => 'alert("foo")',
|
|
15
|
+
:onmousedown => 'alert("foo")',
|
|
16
|
+
:ondblclick => 'alert("foo")',
|
|
17
|
+
:onmouseover => 'alert("foo")',
|
|
18
|
+
:onmouseout => 'alert("foo")',
|
|
19
|
+
:onload => 'alert("foo")',
|
|
20
|
+
:onmousemove => 'alert("foo")'
|
|
21
|
+
})
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def test_result_should_not_contain_any_inline_javascript_events
|
|
25
|
+
assert_equal '<div class="some_class" id="my_test_div">my test div</div>', @output
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def test_should_have_javascript_events_registered_as_unobtrusive
|
|
29
|
+
assert_equal 8, assigns(:js_behaviours).rules.size
|
|
30
|
+
assert assigns(:js_behaviours).rules.include?(['#my_test_div:click', 'alert("foo");'])
|
|
31
|
+
assert assigns(:js_behaviours).rules.include?(['#my_test_div:mouseup', 'alert("foo");'])
|
|
32
|
+
assert assigns(:js_behaviours).rules.include?(['#my_test_div:mousedown', 'alert("foo");'])
|
|
33
|
+
assert assigns(:js_behaviours).rules.include?(['#my_test_div:dblclick', 'alert("foo");'])
|
|
34
|
+
assert assigns(:js_behaviours).rules.include?(['#my_test_div:mouseover', 'alert("foo");'])
|
|
35
|
+
assert assigns(:js_behaviours).rules.include?(['#my_test_div:mouseout', 'alert("foo");'])
|
|
36
|
+
assert assigns(:js_behaviours).rules.include?(['#my_test_div:load', 'alert("foo");'])
|
|
37
|
+
assert assigns(:js_behaviours).rules.include?(['#my_test_div:mousemove', 'alert("foo");'])
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
class TagOptionsForFormTextFieldsTest < Test::Unit::TestCase
|
|
42
|
+
include ActionView::Helpers::FormTagHelper
|
|
43
|
+
include ActionView::Helpers::FormHelper
|
|
44
|
+
include ActionView::Helpers::TagHelper
|
|
45
|
+
|
|
46
|
+
def setup
|
|
47
|
+
@controller = ControllerStub.new
|
|
48
|
+
@request = ActionController::TestRequest.new
|
|
49
|
+
@response = ActionController::TestResponse.new
|
|
50
|
+
get :index
|
|
51
|
+
@text_field_tag = text_field_tag('login')
|
|
52
|
+
@text_field = text_field(:user, :first_name)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_should_not_contain_any_inline_javascript_events
|
|
56
|
+
assert_equal '<input id="login" name="login" type="text" />', @text_field_tag
|
|
57
|
+
assert_equal '<input id="user_first_name" name="user[first_name]" size="30" type="text" />', @text_field
|
|
58
|
+
end
|
|
59
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
ENV["RAILS_ENV"] = "test"
|
|
2
|
+
|
|
3
|
+
# load plugin test kit
|
|
4
|
+
require File.join(File.dirname(__FILE__), 'ptk_helper')
|
|
5
|
+
|
|
6
|
+
# load stubba and other stubs
|
|
7
|
+
require 'stubba'
|
|
8
|
+
require 'stubs/controller_stub'
|
|
9
|
+
|
|
10
|
+
# load plugin files
|
|
11
|
+
require 'actionview_helpers_patches'
|
|
12
|
+
require 'prototype_helper_patches'
|
|
13
|
+
require 'scriptaculous_helper_patches'
|
|
14
|
+
require 'asset_tag_helper_patches'
|
|
15
|
+
require 'tag_helper_patches'
|
|
16
|
+
require 'behaviour_caching'
|
|
17
|
+
|
|
18
|
+
$:.unshift(File.join(File.dirname(__FILE__), '../lib/'))
|
|
19
|
+
|
|
20
|
+
def initialize_test_request
|
|
21
|
+
@controller = ControllerStub.new
|
|
22
|
+
@request = ActionController::TestRequest.new
|
|
23
|
+
@response = ActionController::TestResponse.new
|
|
24
|
+
get :index
|
|
25
|
+
end
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
|
2
|
+
|
|
3
|
+
# inject the controller methods to add the appropriate filters
|
|
4
|
+
# before loading in the unobtrusive js controller otherwise its
|
|
5
|
+
# skip_ filters will be fubarred.
|
|
6
|
+
ActionController::Base.send(:include, UJS::ControllerMethods)
|
|
7
|
+
|
|
8
|
+
require 'controllers/unobtrusive_javascript_controller'
|
|
9
|
+
|
|
10
|
+
class BehaviourGenerationControllerTest < Test::Unit::TestCase
|
|
11
|
+
def test_should_always_skip_the_initialise_js_behaviours_filter
|
|
12
|
+
assert !UnobtrusiveJavascriptController.before_filters.include?(:initialise_js_behaviours)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def test_should_always_skip_the_store_js_behaviours_filter
|
|
16
|
+
assert !UnobtrusiveJavascriptController.before_filters.include?(:store_js_behaviours)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_should_always_perform_any_caching_after_a_request
|
|
20
|
+
assert UnobtrusiveJavascriptController.after_filters.include?(:perform_any_caching)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_should_always_reset_any_js_behaviours_after_a_request
|
|
24
|
+
assert UnobtrusiveJavascriptController.after_filters.include?(:reset_js_behaviours)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
class BehaviourGenerationWithNoBehavioursTest < Test::Unit::TestCase
|
|
29
|
+
def setup
|
|
30
|
+
@controller = UnobtrusiveJavascriptController.new
|
|
31
|
+
@request = ActionController::TestRequest.new
|
|
32
|
+
@response = ActionController::TestResponse.new
|
|
33
|
+
UnobtrusiveJavascriptController.any_instance.stubs(:js_behaviours).returns(UJS::BehaviourScript.new)
|
|
34
|
+
get :generate
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def test_should_set_content_type_to_text_javascript
|
|
38
|
+
assert_equal "text/javascript", @response.headers["Content-Type"]
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def test_should_render_nothing
|
|
42
|
+
assert_equal "", @response.body
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
class BehaviourGenerationWithAppliedBehavioursTest < Test::Unit::TestCase
|
|
47
|
+
def setup
|
|
48
|
+
@behaviours = UJS::BehaviourScript.new
|
|
49
|
+
@behaviours.add_rule("div.foo", "alert('foo')")
|
|
50
|
+
@behaviours.add_rule("div.bar", "alert('bar')")
|
|
51
|
+
UnobtrusiveJavascriptController.any_instance.stubs(:js_behaviours).returns(@behaviours)
|
|
52
|
+
@controller = UnobtrusiveJavascriptController.new
|
|
53
|
+
@request = ActionController::TestRequest.new
|
|
54
|
+
@response = ActionController::TestResponse.new
|
|
55
|
+
get :generate
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def test_should_set_content_type_to_text_javascript
|
|
59
|
+
assert_equal "text/javascript", @response.headers["Content-Type"]
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def test_should_render_behaviour_script_output
|
|
63
|
+
assert_equal @behaviours.to_s, @response.body
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
def test_should_generate_an_etag_for_the_behaviours
|
|
67
|
+
assert_equal Digest::MD5.hexdigest(@behaviours.to_s), @response.headers["ETag"]
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
class BehaviourGenerationWithUnchangedBehavioursTest < Test::Unit::TestCase
|
|
72
|
+
def setup
|
|
73
|
+
@behaviours = UJS::BehaviourScript.new
|
|
74
|
+
@behaviours.add_rule("div.foo", "alert('foo')")
|
|
75
|
+
@behaviours.add_rule("div.bar", "alert('bar')")
|
|
76
|
+
UnobtrusiveJavascriptController.any_instance.stubs(:js_behaviours).returns(@behaviours)
|
|
77
|
+
@controller = UnobtrusiveJavascriptController.new
|
|
78
|
+
@request = ActionController::TestRequest.new
|
|
79
|
+
@response = ActionController::TestResponse.new
|
|
80
|
+
@request.env['HTTP_IF_NONE_MATCH'] = Digest::MD5.hexdigest(@behaviours.to_s)
|
|
81
|
+
get :generate
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_should_set_content_type_to_text_javascript
|
|
85
|
+
assert_equal "text/javascript", @response.headers["Content-Type"]
|
|
86
|
+
end
|
|
87
|
+
|
|
88
|
+
def test_should_render_nothing
|
|
89
|
+
assert_equal " ", @response.body
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
def test_should_send_304_not_modified_http_status
|
|
93
|
+
assert_response 304
|
|
94
|
+
end
|
|
95
|
+
end
|