typo 4.1 → 4.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/TODO-4.2 +14 -0
- data/TODO.MULTIUSERS +45 -0
- data/app/controllers/admin/base_controller.rb +18 -0
- data/app/controllers/admin/general_controller.rb +14 -0
- data/app/controllers/application.rb +2 -1
- data/app/controllers/articles_controller.rb +18 -21
- data/app/helpers/admin/base_helper.rb +4 -4
- data/app/helpers/admin/feedback_helper.rb +3 -3
- data/app/helpers/application_helper.rb +2 -6
- data/app/helpers/sidebar_helper.rb +2 -2
- data/app/models/blog.rb +9 -1
- data/app/models/category.rb +9 -9
- data/app/models/comment.rb +1 -1
- data/app/models/content_state/presumed_ham.rb +2 -2
- data/app/models/resource.rb +2 -0
- data/app/views/admin/categories/_categories.rhtml +10 -6
- data/app/views/admin/categories/edit.rhtml +3 -1
- data/app/views/admin/comments/_form.rhtml +3 -3
- data/app/views/admin/comments/list.rhtml +7 -5
- data/app/views/admin/comments/new.rhtml +3 -1
- data/app/views/admin/comments/show.rhtml +3 -1
- data/app/views/admin/content/_articles.rhtml +1 -1
- data/app/views/admin/content/_form.rhtml +4 -2
- data/app/views/admin/content/new.rhtml +1 -0
- data/app/views/admin/content/preview.rhtml +8 -8
- data/app/views/admin/feedback/_item.rhtml +3 -1
- data/app/views/admin/feedback/list.rhtml +4 -4
- data/app/views/admin/general/index.rhtml +14 -1
- data/app/views/admin/pages/_form.rhtml +1 -1
- data/app/views/admin/pages/destroy.rhtml +1 -1
- data/app/views/admin/pages/new.rhtml +1 -0
- data/app/views/admin/shared/_edit.rhtml +2 -2
- data/app/views/layouts/administration.rhtml +5 -2
- data/app/views/layouts/minimal.rhtml +134 -2
- data/config/boot.rb +1 -1
- data/config/environment.rb +11 -3
- data/config/environments/test.rb +0 -7
- data/config/routes.rb +3 -0
- data/db/migrate/004_add_sidebars.rb +21 -3
- data/db/migrate/056_create_notifications.rb +1 -1
- data/db/migrate/062_add_sitealizer_plugin.rb +18 -0
- data/db/schema.mysql-v3.sql +217 -0
- data/db/schema.mysql.sql +31 -5
- data/db/schema.postgresql.sql +31 -6
- data/db/schema.rb +17 -7
- data/db/schema.sqlite.sql +31 -6
- data/db/schema.sqlserver.sql +32 -6
- data/db/schema_version +1 -1
- data/lang/de_DE.rb +493 -0
- data/lang/fr_FR.rb +28 -4
- data/lang/ro_RO.rb +554 -0
- data/lib/tasks/release.rake +7 -7
- data/lib/typo_version.rb +1 -1
- data/public/images/sitealizer/bar.gif +0 -0
- data/public/images/sitealizer/uv.png +0 -0
- data/public/images/sitealizer/vh.png +0 -0
- data/public/javascripts/tiny_mce/blank.htm +9 -0
- data/public/javascripts/tiny_mce/langs/en.js +41 -0
- data/public/javascripts/tiny_mce/license.txt +504 -0
- data/public/javascripts/tiny_mce/themes/advanced/about.htm +52 -0
- data/public/javascripts/tiny_mce/themes/advanced/anchor.htm +33 -0
- data/public/javascripts/tiny_mce/themes/advanced/charmap.htm +53 -0
- data/public/javascripts/tiny_mce/themes/advanced/color_picker.htm +13 -0
- data/public/javascripts/tiny_mce/themes/advanced/css/editor_content.css +58 -0
- data/public/javascripts/tiny_mce/themes/advanced/css/editor_popup.css +331 -0
- data/public/javascripts/tiny_mce/themes/advanced/css/editor_ui.css +97 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/about.htm +31 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/common_buttons.htm +162 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/create_accessible_content.htm +45 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_anchor_window.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_image_window.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_link_window.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_table_window.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/index.htm +27 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_anchor_button.htm +32 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_image_button.htm +65 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_link_button.htm +33 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_table_button.htm +71 -0
- data/public/javascripts/tiny_mce/themes/advanced/docs/en/style.css +28 -0
- data/public/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
- data/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js +1534 -0
- data/public/javascripts/tiny_mce/themes/advanced/image.htm +100 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/anchor.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/anchor_symbol.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/backcolor.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold_de_se.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold_es.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold_fr.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold_ru.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bold_tw.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/browse.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/bullist.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/button_menu.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/buttons.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/cancel_button_bg.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/charmap.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/cleanup.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/close.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/code.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/color.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/copy.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/custom_1.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/cut.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/forecolor.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/help.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/hr.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/image.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/indent.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/insert_button_bg.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/italic.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/italic_de_se.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/italic_es.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/italic_ru.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/italic_tw.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/justifycenter.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/justifyfull.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/justifyleft.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/justifyright.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/link.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/menu_check.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/newdocument.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/numlist.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/opacity.png +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/outdent.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/paste.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/redo.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/removeformat.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/separator.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/spacer.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/statusbar_resize.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/strikethrough.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/sub.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/sup.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/underline.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/underline_es.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/underline_fr.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/underline_ru.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/underline_tw.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/undo.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/unlink.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/visualaid.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_bg.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_end.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_sel_bg.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_sel_end.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/images/xp/tabs_bg.gif +0 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/about.js +75 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/anchor.js +74 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/charmap.js +326 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/color_picker.js +108 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/image.js +81 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/link.js +70 -0
- data/public/javascripts/tiny_mce/themes/advanced/jscripts/source_editor.js +60 -0
- data/public/javascripts/tiny_mce/themes/advanced/langs/en.js +82 -0
- data/public/javascripts/tiny_mce/themes/advanced/link.htm +100 -0
- data/public/javascripts/tiny_mce/themes/advanced/source_editor.htm +32 -0
- data/public/javascripts/tiny_mce/tiny_mce.js +1 -0
- data/public/javascripts/tiny_mce/tiny_mce_popup.js +288 -0
- data/public/javascripts/tiny_mce/tiny_mce_src.js +7284 -0
- data/public/javascripts/tiny_mce/utils/editable_selects.js +61 -0
- data/public/javascripts/tiny_mce/utils/form_utils.js +210 -0
- data/public/javascripts/tiny_mce/utils/mclayer.js +210 -0
- data/public/javascripts/tiny_mce/utils/mctabs.js +74 -0
- data/public/javascripts/tiny_mce/utils/validate.js +219 -0
- data/public/stylesheets/administration.css +5 -1
- data/public/stylesheets/minimal.css +1 -0
- data/test/functional/admin/categories_controller_test.rb +2 -2
- data/test/functional/xml_controller_test.rb +72 -40
- data/test/test_helper.rb +1 -17
- data/test/unit/article_test.rb +1 -1
- data/test/unit/trigger_test.rb +1 -1
- data/themes/scribbish/views/articles/_comment.rhtml +13 -17
- data/themes/scribbish/views/articles/_comment_form.rhtml +7 -5
- data/themes/scribbish/views/articles/_comment_list.rhtml +7 -0
- data/themes/scribbish/views/articles/read.rhtml +1 -1
- data/vendor/plugins/aimpresence_sidebar/views/content.rhtml +1 -1
- data/vendor/plugins/archives_sidebar/views/content.rhtml +1 -1
- data/vendor/plugins/audioscrobbler_sidebar/MAINTAINERS +26 -0
- data/vendor/plugins/audioscrobbler_sidebar/MIT-LICENSE +21 -0
- data/vendor/plugins/audioscrobbler_sidebar/README +27 -0
- data/vendor/plugins/backpack_sidebar/MAINTAINERS +26 -0
- data/vendor/plugins/backpack_sidebar/MIT-LICENSE +21 -0
- data/vendor/plugins/backpack_sidebar/README +27 -0
- data/vendor/plugins/category_sidebar/views/content.rhtml +1 -1
- data/vendor/plugins/sitealizer/CHANGELOG +6 -0
- data/vendor/plugins/sitealizer/LICENSE +22 -0
- data/vendor/plugins/sitealizer/README +82 -0
- data/vendor/plugins/sitealizer/Rakefile +22 -0
- data/vendor/plugins/sitealizer/init.rb +24 -0
- data/vendor/plugins/sitealizer/install.rb +22 -0
- data/vendor/plugins/sitealizer/lib/app/assets/images/bar.gif +0 -0
- data/vendor/plugins/sitealizer/lib/app/assets/images/uv.png +0 -0
- data/vendor/plugins/sitealizer/lib/app/assets/images/vh.png +0 -0
- data/vendor/plugins/sitealizer/lib/app/controllers/sitealizer_controller.rb +118 -0
- data/vendor/plugins/sitealizer/lib/app/models/site_tracker.rb +145 -0
- data/vendor/plugins/sitealizer/lib/app/views/layouts/sitealizer.rhtml +66 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_browsers.rhtml +23 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_daily_stats.rhtml +67 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_hits_summary.rhtml +0 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_hosts.rhtml +21 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_keywords.rhtml +19 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_languages.rhtml +21 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_main_frame.rhtml +84 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_monthly_hits.rhtml +67 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_page_urls.rhtml +20 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_platforms.rhtml +21 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_referers.rhtml +22 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_robots.rhtml +19 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_search_engines.rhtml +19 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/hourly_stats.rhtml +39 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/index.rhtml +8 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/login.rhtml +20 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/menu.rhtml +74 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/referrer_stats.rhtml +20 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/search_stats.rhtml +25 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/summary.rhtml +22 -0
- data/vendor/plugins/sitealizer/lib/app/views/sitealizer/visitor_info.rhtml +30 -0
- data/vendor/plugins/sitealizer/lib/config.yml +18 -0
- data/vendor/plugins/sitealizer/lib/sitealizer/parser.rb +347 -0
- data/vendor/plugins/sitealizer/lib/sitealizer.rb +78 -0
- data/vendor/plugins/sitealizer/lib/tasks/sitealizer.rake +36 -0
- data/vendor/plugins/sitealizer/test/fixtures/sitealizer.yml +89 -0
- data/vendor/plugins/sitealizer/test/sitealizer_controller_test.rb +208 -0
- data/vendor/plugins/sitealizer/test/sitealizer_parser_test.rb +169 -0
- data/vendor/plugins/sitealizer/test/test_helper.rb +7 -0
- data/vendor/plugins/tada_sidebar/MAINTAINERS +26 -0
- data/vendor/plugins/tada_sidebar/MIT-LICENSE +21 -0
- data/vendor/plugins/tada_sidebar/README +27 -0
- data/vendor/plugins/tag_sidebar/views/content.rhtml +1 -1
- data/vendor/plugins/tiny_mce/README +10 -0
- data/vendor/plugins/tiny_mce/Rakefile +22 -0
- data/vendor/plugins/tiny_mce/TODO +2 -0
- data/vendor/plugins/tiny_mce/changelog +1017 -0
- data/vendor/plugins/tiny_mce/init.rb +3 -0
- data/vendor/plugins/tiny_mce/install.rb +1 -0
- data/vendor/plugins/tiny_mce/lib/tiny_mce.rb +36 -0
- data/vendor/plugins/tiny_mce/lib/tiny_mce_helper.rb +48 -0
- data/vendor/plugins/tiny_mce/tasks/tiny_mce.rake +40 -0
- data/vendor/plugins/tiny_mce/test/helper_testcase.rb +38 -0
- data/vendor/plugins/tiny_mce/test/tiny_mce_helper_test.rb +67 -0
- data/vendor/plugins/tiny_mce/test/tiny_mce_test.rb +85 -0
- data/vendor/plugins/tiny_mce/tiny_mce_options.yml +121 -0
- data/vendor/plugins/xbox_sidebar/MAINTAINERS +26 -0
- data/vendor/plugins/xbox_sidebar/MIT-LICENSE +21 -0
- data/vendor/plugins/xbox_sidebar/README +27 -0
- data/vendor/plugins/xml_sidebar/lib/xml_sidebar.rb +1 -1
- data/vendor/plugins/xml_sidebar/views/content.rhtml +4 -4
- metadata +220 -4
- data/TODO-4.1 +0 -16
@@ -0,0 +1,208 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper'
|
2
|
+
|
3
|
+
class SitealizerController
|
4
|
+
def rescue_action(e) raise e end
|
5
|
+
SA_CONFIG = {'sitealizer' => {'username' => 'test', 'password' => 'test', 'access_type' => 'public'}}
|
6
|
+
end
|
7
|
+
|
8
|
+
class SitealizerControllerTest < Test::Unit::TestCase
|
9
|
+
set_fixture_class :sitealizer => 'SiteTracker'
|
10
|
+
fixtures :sitealizer
|
11
|
+
|
12
|
+
def setup
|
13
|
+
@controller = SitealizerController.new
|
14
|
+
@request = ActionController::TestRequest.new
|
15
|
+
@response = ActionController::TestResponse.new
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_login
|
19
|
+
get :login
|
20
|
+
assert_template 'login'
|
21
|
+
|
22
|
+
post :login, :username => 'test', :password => 'test'
|
23
|
+
assert_response :redirect
|
24
|
+
assert_redirected_to :action => 'index'
|
25
|
+
assert_not_nil @response.cookies["sitealizer"][0]
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_login_fails
|
29
|
+
post :login, :username => 'me', :password => 'me'
|
30
|
+
assert_not_nil flash[:notice]
|
31
|
+
assert_template 'login'
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_logout
|
35
|
+
get :logout
|
36
|
+
assert @response.cookies["sitealizer"].empty?
|
37
|
+
assert_response :redirect
|
38
|
+
assert_redirected_to :action => 'login'
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_index
|
42
|
+
get :index
|
43
|
+
assert_template 'index'
|
44
|
+
get :index, :year => '2006', :month => '03'
|
45
|
+
assert_template 'index'
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_menu
|
49
|
+
get :menu
|
50
|
+
assert_template 'menu'
|
51
|
+
assert_not_nil assigns(:months)
|
52
|
+
assert_not_nil assigns(:years)
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_summary
|
56
|
+
get :summary
|
57
|
+
assert_equal 9, assigns(:total_hits)
|
58
|
+
assert_equal 7, assigns(:unique_hits)
|
59
|
+
assert_equal 9, assigns(:year_hits)
|
60
|
+
assert_equal 7, assigns(:year_uniq)
|
61
|
+
assert_equal [1, 2, 3, "Mar 01 2007"], assigns(:daily_hits).first
|
62
|
+
assert_equal ["Mar 2007", 7, 9, "March 2007"], assigns(:month_hits)[2]
|
63
|
+
assert_template 'summary'
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_summary_no_records
|
67
|
+
get :summary, :year => '2006', :month => '01'
|
68
|
+
[:total_hits, :unique_hits, :year_hits, :year_uniq].each do |var|
|
69
|
+
assert_equal 0, assigns(var)
|
70
|
+
end
|
71
|
+
|
72
|
+
expected = [[1, 0, 0, "Jan 01 2006"], [2, 0, 0, "Jan 02 2006"], [3, 0, 0, "Jan 03 2006"],
|
73
|
+
[4, 0, 0, "Jan 04 2006"], [5, 0, 0, "Jan 05 2006"], [6, 0, 0, "Jan 06 2006"],
|
74
|
+
[7, 0, 0, "Jan 07 2006"], [8, 0, 0, "Jan 08 2006"], [9, 0, 0, "Jan 09 2006"],
|
75
|
+
[10, 0, 0, "Jan 10 2006"], [11, 0, 0, "Jan 11 2006"], [12, 0, 0, "Jan 12 2006"],
|
76
|
+
[13, 0, 0, "Jan 13 2006"], [14, 0, 0, "Jan 14 2006"], [15, 0, 0, "Jan 15 2006"],
|
77
|
+
[16, 0, 0, "Jan 16 2006"], [17, 0, 0, "Jan 17 2006"], [18, 0, 0, "Jan 18 2006"],
|
78
|
+
[19, 0, 0, "Jan 19 2006"], [20, 0, 0, "Jan 20 2006"], [21, 0, 0, "Jan 21 2006"],
|
79
|
+
[22, 0, 0, "Jan 22 2006"], [23, 0, 0, "Jan 23 2006"], [24, 0, 0, "Jan 24 2006"],
|
80
|
+
[25, 0, 0, "Jan 25 2006"], [26, 0, 0, "Jan 26 2006"], [27, 0, 0, "Jan 27 2006"],
|
81
|
+
[28, 0, 0, "Jan 28 2006"], [29, 0, 0, "Jan 29 2006"], [30, 0, 0, "Jan 30 2006"],
|
82
|
+
[31, 0, 0, "Jan 31 2006"]]
|
83
|
+
assert_equal expected, assigns(:daily_hits)
|
84
|
+
|
85
|
+
expected = [["Jan 2006", 0, 0, "January 2006"], ["Feb 2006", 0, 0, "February 2006"],
|
86
|
+
["Mar 2006", 0, 0, "March 2006"], ["Apr 2006", 0, 0, "April 2006"],
|
87
|
+
["May 2006", 0, 0, "May 2006"], ["Jun 2006", 0, 0, "June 2006"],
|
88
|
+
["Jul 2006", 0, 0, "July 2006"], ["Aug 2006", 0, 0, "August 2006"],
|
89
|
+
["Sep 2006", 0, 0, "September 2006"], ["Oct 2006", 0, 0, "October 2006"],
|
90
|
+
["Nov 2006", 0, 0, "November 2006"], ["Dec 2006", 0, 0, "December 2006"]]
|
91
|
+
assert_equal expected, assigns(:month_hits)
|
92
|
+
|
93
|
+
assert_template 'summary'
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_hourly_stats
|
97
|
+
get :hourly_stats
|
98
|
+
assert_equal 9, assigns(:total_hits)
|
99
|
+
|
100
|
+
# Hour, Visits, Hits
|
101
|
+
assert_equal ["00", 3, 4], assigns(:hourly_hits).first
|
102
|
+
assert_template 'hourly_stats'
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_hourly_stats_no_records
|
106
|
+
get :hourly_stats, :year => '2006', :month => '01'
|
107
|
+
expected = [["00", 0, 0], ["01", 0, 0], ["02", 0, 0], ["03", 0, 0], ["04", 0, 0], ["05", 0, 0],
|
108
|
+
["06", 0, 0], ["07", 0, 0], ["08", 0, 0], ["09", 0, 0], ["10", 0, 0], ["11", 0, 0],
|
109
|
+
["12", 0, 0], ["13", 0, 0], ["14", 0, 0], ["15", 0, 0], ["16", 0, 0], ["17", 0, 0],
|
110
|
+
["18", 0, 0], ["19", 0, 0], ["20", 0, 0], ["21", 0, 0], ["22", 0, 0], ["23", 0, 0]]
|
111
|
+
assert_equal expected, assigns(:hourly_hits)
|
112
|
+
assert_template 'hourly_stats'
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_search_stats
|
116
|
+
get :search_stats
|
117
|
+
|
118
|
+
assert_equal 2, assigns(:keywords).size
|
119
|
+
expected = [{:total => 3, :query => "sitealizer"},{:total => 1, :query => "sitealizer rails plugin"}]
|
120
|
+
expected.each do |term|
|
121
|
+
assert_equal term, assigns(:keywords)[expected.index(term)]
|
122
|
+
end
|
123
|
+
|
124
|
+
assert_equal 2, assigns(:robots).size
|
125
|
+
expected = [{:total => 2, :name => "Googlebot"},{:total => 1, :name => "MSNBot"}]
|
126
|
+
expected.each do |robot|
|
127
|
+
assert_equal robot, assigns(:robots)[expected.index(robot)]
|
128
|
+
end
|
129
|
+
|
130
|
+
assert_equal 3, assigns(:engines).size
|
131
|
+
expected = [{:total=>2, :domain=>"search.aol.com"}, {:total=>1, :domain=>"www.altavista.com"},
|
132
|
+
{:total=>1, :domain=>"search.yahoo.com"}]
|
133
|
+
expected.each do |engine|
|
134
|
+
assert_equal engine, assigns(:engines)[expected.index(engine)]
|
135
|
+
end
|
136
|
+
|
137
|
+
assert_template 'search_stats'
|
138
|
+
end
|
139
|
+
|
140
|
+
def test_search_stats_no_records
|
141
|
+
get :search_stats, :year => '2006', :month => '01'
|
142
|
+
[:keywords, :engines, :robots].each do |var|
|
143
|
+
assert assigns(var).empty?
|
144
|
+
end
|
145
|
+
assert_template 'search_stats'
|
146
|
+
end
|
147
|
+
|
148
|
+
def test_visitor_info
|
149
|
+
get :visitor_info
|
150
|
+
|
151
|
+
assert_equal 4, assigns(:browsers).size
|
152
|
+
expected = ["Netscape","Other","MSIE","Safari"]
|
153
|
+
expected.each do |browser|
|
154
|
+
assert_equal browser, assigns(:browsers)[expected.index(browser)][:browser][:type]
|
155
|
+
end
|
156
|
+
|
157
|
+
assert_equal 3, assigns(:platforms).size
|
158
|
+
expected = ["Windows","Other","Macintosh"]
|
159
|
+
expected.each do |platform|
|
160
|
+
assert_equal platform, assigns(:platforms)[expected.index(platform)][:name]
|
161
|
+
end
|
162
|
+
|
163
|
+
assert_equal 7, assigns(:hosts).size
|
164
|
+
expected = ["41.41.41.41","1.1.1.1","123.4.5.678","31.31.31.31","51.51.51.51","3.3.3.3","2.2.2.2"]
|
165
|
+
expected.each do |host|
|
166
|
+
assert_equal host, assigns(:hosts)[expected.index(host)]["ip"]
|
167
|
+
end
|
168
|
+
|
169
|
+
assert_equal 4, assigns(:languages).size
|
170
|
+
expected = ["en",nil,"fr-fr","pt-pt"]
|
171
|
+
expected.each do |language|
|
172
|
+
assert_equal language, assigns(:languages)[expected.index(language)][:language]
|
173
|
+
end
|
174
|
+
|
175
|
+
assert_template 'visitor_info'
|
176
|
+
end
|
177
|
+
|
178
|
+
def test_visitor_info_no_records
|
179
|
+
get :visitor_info, :year => '2006', :month => '01'
|
180
|
+
assert_equal 0, assigns(:total_hits)
|
181
|
+
[:browsers, :platforms, :hosts, :languages].each do |var|
|
182
|
+
assert assigns(var).empty?
|
183
|
+
end
|
184
|
+
assert_template 'visitor_info'
|
185
|
+
end
|
186
|
+
|
187
|
+
def test_referrer_stats
|
188
|
+
get :referrer_stats
|
189
|
+
assert_not_nil assigns(:page_urls)
|
190
|
+
assert_equal 2, assigns(:page_urls).size
|
191
|
+
[[0,"/"],[1,"/account"]].each do |page|
|
192
|
+
assert_equal page[1], assigns(:page_urls)[page[0]].path
|
193
|
+
end
|
194
|
+
assert_not_nil assigns(:referers)
|
195
|
+
assert_equal 5, assigns(:referers).size
|
196
|
+
assert_template 'referrer_stats'
|
197
|
+
end
|
198
|
+
|
199
|
+
def test_referrer_stats_no_records
|
200
|
+
get :referrer_stats, :year => '2007', :month => '01'
|
201
|
+
assert_equal 0, assigns(:total_hits)
|
202
|
+
[:page_urls, :referers].each do |var|
|
203
|
+
assert assigns(var).empty?
|
204
|
+
end
|
205
|
+
assert_template 'referrer_stats'
|
206
|
+
end
|
207
|
+
|
208
|
+
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
require 'test/unit'
|
2
|
+
require 'cgi'
|
3
|
+
require File.dirname(__FILE__) + '/../lib/sitealizer/parser'
|
4
|
+
|
5
|
+
class SitealizerParserTest < Test::Unit::TestCase
|
6
|
+
|
7
|
+
def test_user_agent_platform
|
8
|
+
user_agent = "(Macintosh; U; PPC Mac OS X; en)"
|
9
|
+
assert_equal "Macintosh", Sitealizer::Parser::UserAgent.get_platform(user_agent)
|
10
|
+
|
11
|
+
user_agent = "(Windows; U; Windows NT 5.1; nl; rv:1.8)"
|
12
|
+
assert_equal "Windows", Sitealizer::Parser::UserAgent.get_platform(user_agent)
|
13
|
+
|
14
|
+
user_agent = "(X11; U; Linux i686; en-US; rv:1.8.0.2)"
|
15
|
+
assert_equal "Linux", Sitealizer::Parser::UserAgent.get_platform(user_agent)
|
16
|
+
|
17
|
+
user_agent = "(compatible; MSIE 5.0; SunOS 5.9 sun4u; X11)"
|
18
|
+
assert_equal "Sun Solaris", Sitealizer::Parser::UserAgent.get_platform(user_agent)
|
19
|
+
|
20
|
+
user_agent = "X11; U; FreeBSD i386; en-US; rv:1.7.8)"
|
21
|
+
assert_equal "FreeBSD", Sitealizer::Parser::UserAgent.get_platform(user_agent)
|
22
|
+
|
23
|
+
user_agent = "Some unknown user agent"
|
24
|
+
assert_equal "Other", Sitealizer::Parser::UserAgent.get_platform(user_agent)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_user_agent_browser
|
28
|
+
user_agent = "Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/418.9.1 (KHTML, like Gecko) Safari/419.3"
|
29
|
+
assert_equal({:type => 'Safari', :version => nil},
|
30
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
31
|
+
|
32
|
+
user_agent = "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.1) Gecko/20061026 BonEcho/2.0"
|
33
|
+
assert_equal({:type => 'Firefox BonEcho', :version => '2.0'},
|
34
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
35
|
+
|
36
|
+
user_agent = "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)"
|
37
|
+
assert_equal({:type => 'MSIE', :version => '7.0'},
|
38
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
39
|
+
|
40
|
+
user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8) Gecko/20051107 Firefox/1.5"
|
41
|
+
assert_equal({:type => 'Firefox', :version => '1.5'},
|
42
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
43
|
+
|
44
|
+
user_agent = "Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.50"
|
45
|
+
assert_equal({:type => 'Opera', :version => '8.50'},
|
46
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
47
|
+
|
48
|
+
user_agent = "Mozilla/4.0 (compatible; MSIE 6.0; America Online Browser 1.1; rev1.2; Windows NT 5.1;)"
|
49
|
+
assert_equal({:type => 'AOL', :version => '1.1'},
|
50
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
51
|
+
|
52
|
+
user_agent = "Mozilla/4.0 (compatible; MSIE 5.5; AOL 6.0; Windows 98)"
|
53
|
+
assert_equal({:type => 'AOL', :version => '6.0'},
|
54
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
55
|
+
|
56
|
+
user_agent = "Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.0.3) Gecko/20060427 Camino/1.0.1"
|
57
|
+
assert_equal({:type => 'Camino', :version => '1.0.1'},
|
58
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
59
|
+
|
60
|
+
user_agent = "Mozilla/5.0 (compatible; Konqueror/3.4; Linux) KHTML/3.4.2 (like Gecko)"
|
61
|
+
assert_equal({:type => 'Konqueror', :version => '3.4'},
|
62
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
63
|
+
|
64
|
+
user_agent = "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.7.13) Gecko/20050610 K-Meleon/0.9"
|
65
|
+
assert_equal({:type => 'K-Meleon', :version => '0.9'},
|
66
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
67
|
+
|
68
|
+
user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)"
|
69
|
+
assert_equal({:type => 'Netscape', :version => '7.1'},
|
70
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
71
|
+
|
72
|
+
user_agent = "Mozilla/4.0 (PSP (PlayStation Portable); 2.00)"
|
73
|
+
assert_equal({:type => 'PlayStation Portable (PSP)', :version => '2.00'},
|
74
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
75
|
+
|
76
|
+
user_agent = "Mozilla/5.0 (PLAYSTATION 3; 1.00)"
|
77
|
+
assert_equal({:type => 'PlayStation 3', :version => '1.00'},
|
78
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
79
|
+
|
80
|
+
user_agent = "Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.8a"
|
81
|
+
assert_equal({:type => 'Lynx', :version => '2.8.5'},
|
82
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
83
|
+
|
84
|
+
user_agent = "Another user agent"
|
85
|
+
assert_equal({:type => 'Other', :version => nil},
|
86
|
+
Sitealizer::Parser::UserAgent.browser_info(user_agent))
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_keyword_get_terms
|
91
|
+
referer = "http://search.yahoo.com/search?p=sitealizer&fr=yfp-t-501&toggle=1&cop=mss&ei=UTF-8"
|
92
|
+
assert_equal "sitealizer", Sitealizer::Parser::Keyword.get_terms(referer)
|
93
|
+
|
94
|
+
referer = "http://search.msn.com/results.aspx?srch=105&FORM=AS5&q=sitealizer"
|
95
|
+
assert_equal "sitealizer", Sitealizer::Parser::Keyword.get_terms(referer)
|
96
|
+
|
97
|
+
referer = "http://www.google.com/search?sourceid=navclient&ie=UTF-8&rlz=1T4DMUS_enUS202US205&q=sitealizer"
|
98
|
+
assert_equal "sitealizer", Sitealizer::Parser::Keyword.get_terms(referer)
|
99
|
+
|
100
|
+
referer = "http://search.aol.com/aolcom/search?invocationType=topsearchbox.search&query=sitealizer"
|
101
|
+
assert_equal "sitealizer", Sitealizer::Parser::Keyword.get_terms(referer)
|
102
|
+
|
103
|
+
referer = "http://alltheweb.com/search?cat=web&cs=iso88591&q=sitealizer&rys=0&itag=crv&_sb_lang=pref"
|
104
|
+
assert_equal "sitealizer", Sitealizer::Parser::Keyword.get_terms(referer)
|
105
|
+
|
106
|
+
referer = "http://www.ask.com/web?q=sitealizer&qsrc=0&o=333&l=dir"
|
107
|
+
assert_equal "sitealizer", Sitealizer::Parser::Keyword.get_terms(referer)
|
108
|
+
|
109
|
+
referer = "http://www.altavista.com/web/results?itag=ody&q=sitealizer&kgs=1&kls=0"
|
110
|
+
assert_equal "sitealizer", Sitealizer::Parser::Keyword.get_terms(referer)
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_keyword_get_domain
|
114
|
+
referer = "http://search.yahoo.com/search?p=sitealizer&fr=yfp-t-501&toggle=1&cop=mss&ei=UTF-8"
|
115
|
+
assert_equal "search.yahoo.com", Sitealizer::Parser::Keyword.get_domain(referer, 'localhost')
|
116
|
+
|
117
|
+
referer = "http://search.msn.com/results.aspx?srch=105&FORM=AS5&q=sitealizer"
|
118
|
+
assert_equal "search.msn.com", Sitealizer::Parser::Keyword.get_domain(referer, 'localhost')
|
119
|
+
|
120
|
+
referer = "http://www.google.com/search?sourceid=navclient&ie=UTF-8&rlz=1T4DMUS_enUS202US205&q=sitealizer"
|
121
|
+
assert_equal "www.google.com", Sitealizer::Parser::Keyword.get_domain(referer, 'localhost')
|
122
|
+
|
123
|
+
referer = "http://search.aol.com/aolcom/search?invocationType=topsearchbox.search&query=sitealizer"
|
124
|
+
assert_equal "search.aol.com", Sitealizer::Parser::Keyword.get_domain(referer, 'localhost')
|
125
|
+
|
126
|
+
referer = "http://alltheweb.com/search?cat=web&cs=iso88591&q=sitealizer&rys=0&itag=crv&_sb_lang=pref"
|
127
|
+
assert_equal "alltheweb.com", Sitealizer::Parser::Keyword.get_domain(referer, 'localhost')
|
128
|
+
|
129
|
+
referer = "http://www.ask.com/web?q=sitealizer&qsrc=0&o=333&l=dir"
|
130
|
+
assert_equal "www.ask.com", Sitealizer::Parser::Keyword.get_domain(referer, 'localhost')
|
131
|
+
|
132
|
+
referer = "http://www.altavista.com/web/results?itag=ody&q=sitealizer&kgs=1&kls=0"
|
133
|
+
assert_equal "www.altavista.com", Sitealizer::Parser::Keyword.get_domain(referer, 'localhost')
|
134
|
+
end
|
135
|
+
|
136
|
+
def test_robot_get_name
|
137
|
+
user_agent = "Atomz/1.0"
|
138
|
+
assert_equal "Atomz.com", Sitealizer::Parser::Robot.get_name(user_agent)
|
139
|
+
|
140
|
+
user_agent = "Googlebot/2.X (+http://www.googlebot.com/bot.html)"
|
141
|
+
assert_equal "Googlebot", Sitealizer::Parser::Robot.get_name(user_agent)
|
142
|
+
|
143
|
+
user_agent = "InfoSeek Robot 1.0"
|
144
|
+
assert_equal "InfoSeek", Sitealizer::Parser::Robot.get_name(user_agent)
|
145
|
+
|
146
|
+
user_agent = "Mozilla/2.0 (compatible; Ask Jeeves/Teoma)"
|
147
|
+
assert_equal "Ask Jeeves", Sitealizer::Parser::Robot.get_name(user_agent)
|
148
|
+
|
149
|
+
user_agent = "Lycos/x."
|
150
|
+
assert_equal "Lycos", Sitealizer::Parser::Robot.get_name(user_agent)
|
151
|
+
|
152
|
+
user_agent = "MSNBOT/0.1 (http://search.msn.com/msnbot.htm)"
|
153
|
+
assert_equal "MSNBot", Sitealizer::Parser::Robot.get_name(user_agent)
|
154
|
+
|
155
|
+
user_agent = "Slurp/2.0"
|
156
|
+
assert_equal "Inktomi", Sitealizer::Parser::Robot.get_name(user_agent)
|
157
|
+
|
158
|
+
user_agent = "Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp )"
|
159
|
+
assert_equal "Yahoo Slurp", Sitealizer::Parser::Robot.get_name(user_agent)
|
160
|
+
end
|
161
|
+
|
162
|
+
def test_language_get_name
|
163
|
+
[["en","English"],["pt-pt","Portuguese"],["en-nz","English/New Zealand"],["es-mx","Spanish/Mexico",],
|
164
|
+
["ru-ru","Russian"],["de-at","German/Austria"],["fr-fr","French/France"],["zh-cn","Chinese/China"]].each do |l|
|
165
|
+
assert_equal l[1], Sitealizer::Parser::Language.get_name(l[0])
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
This is a list of Typo maintainers. If you have a commit bit, please add your
|
2
|
+
name and contact details to the list.
|
3
|
+
|
4
|
+
Original Author
|
5
|
+
|
6
|
+
Tobias Luetke <tobi@leetsoft.com>
|
7
|
+
blog: http://blog.leetsoft.com/
|
8
|
+
irc: xal
|
9
|
+
|
10
|
+
Peons
|
11
|
+
|
12
|
+
Scott Laird <scott@sigkill.org>
|
13
|
+
blog: http://scottstuff.net/
|
14
|
+
irc: slaird
|
15
|
+
|
16
|
+
Piers Cawley <pdcawley@bofh.org.uk>
|
17
|
+
blog: http://www.bofh.org.uk/
|
18
|
+
irc: pdcawley
|
19
|
+
|
20
|
+
Kevin Ballard <kevin@sb.org>
|
21
|
+
blog: http://kevin.sb.org
|
22
|
+
irc: Eridius
|
23
|
+
|
24
|
+
Frédéric de Villamil <frederic@de-villamil.com>
|
25
|
+
blog: http://fredericdevillamil.com
|
26
|
+
irc: neuro`
|
@@ -0,0 +1,21 @@
|
|
1
|
+
Copyright (c) 2005 Tobias Luetke
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
@@ -0,0 +1,27 @@
|
|
1
|
+
What is it?
|
2
|
+
===========
|
3
|
+
|
4
|
+
This is an audioscrobbler sidebar plugin for typo blogging engine.
|
5
|
+
|
6
|
+
Requirements
|
7
|
+
============
|
8
|
+
|
9
|
+
Currently you need all of those things to get typo to run:
|
10
|
+
|
11
|
+
* Typo 1.4.1 or higer
|
12
|
+
* Rails 1.2.x
|
13
|
+
|
14
|
+
Installation
|
15
|
+
============
|
16
|
+
|
17
|
+
When in Typo root directory, just run
|
18
|
+
./script/plugin install http://svn.typosphere.org/typo/plugins/audioscrobbler_sidebar/
|
19
|
+
|
20
|
+
Usage
|
21
|
+
======
|
22
|
+
|
23
|
+
Typo's administrative interface is available at http://your.domain.com/admin.
|
24
|
+
To activate the plugin, drag and drop it in the sidebar and fill the config.
|
25
|
+
|
26
|
+
Enjoy,
|
27
|
+
Your typo team
|
@@ -0,0 +1,10 @@
|
|
1
|
+
TinyMCE
|
2
|
+
=======
|
3
|
+
|
4
|
+
This plugin provides for the installation and utilization of TinyMCE in Ruby on Rails applications. TinyMCE is a WYSIWYG HTML editing component
|
5
|
+
released under the GNU Public License (GPL) by Moxiecode Systems (http://tinymce.moxiecode.com/).
|
6
|
+
|
7
|
+
This plugin is maintained by Blake Watters <blake@near-time.com>
|
8
|
+
|
9
|
+
Bundled TinyMCE version: 2.0.6.1
|
10
|
+
Documentation from the TinyMCE distribution is available in the doc subdirectory of the plugin
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'rake'
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'rake/rdoctask'
|
4
|
+
|
5
|
+
desc 'Default: run unit tests.'
|
6
|
+
task :default => :test
|
7
|
+
|
8
|
+
desc 'Test the tiny_mce plugin.'
|
9
|
+
Rake::TestTask.new(:test) do |t|
|
10
|
+
t.libs << 'lib'
|
11
|
+
t.pattern = 'test/**/*_test.rb'
|
12
|
+
t.verbose = true
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'Generate documentation for the tiny_mce plugin.'
|
16
|
+
Rake::RDocTask.new(:rdoc) do |rdoc|
|
17
|
+
rdoc.rdoc_dir = 'rdoc'
|
18
|
+
rdoc.title = 'TinyMce'
|
19
|
+
rdoc.options << '--line-numbers' << '--inline-source'
|
20
|
+
rdoc.rdoc_files.include('README')
|
21
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
22
|
+
end
|