parlement 0.8 → 0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +22 -0
- data/Rakefile +2 -2
- data/app/controllers/account_controller.rb +20 -7
- data/app/controllers/application.rb +17 -4
- data/app/controllers/elt_controller.rb +1 -10
- data/app/controllers/person_controller.rb +1 -1
- data/app/helpers/elt_helper.rb +14 -0
- data/app/models/elt.rb +2 -0
- data/app/models/mail.rb +6 -5
- data/app/models/person.rb +5 -0
- data/app/views/account/_login.rhtml +52 -48
- data/app/views/account/_show.rhtml +13 -12
- data/app/views/elt/_choice.rhtml +11 -2
- data/app/views/elt/_elt.rhtml +38 -50
- data/app/views/elt/new.rhtml +8 -8
- data/app/views/elt/show.rhtml +21 -12
- data/app/views/layouts/top.rhtml +1 -0
- data/app/views/person/_listElts.rhtml +47 -26
- data/app/views/person/show.rhtml +8 -18
- data/config/environment.rb +6 -3
- data/db/ROOT/fr.txt +34 -31
- data/db/ROOT/parlement/test.txt +6 -4
- data/db/development_structure.sql +18 -20
- data/public/engine_files/login_engine/stylesheets/login_engine.css +81 -0
- data/public/images/ParlementLogo_fr.png +0 -0
- data/public/images/comments.gif +0 -0
- data/public/images/vote_minus.png +0 -0
- data/public/images/vote_plus.png +0 -0
- data/public/images/vote_plus_minus.svg +79 -0
- data/public/images/write.png +0 -0
- data/public/images/write.svg +70 -0
- data/public/javascripts/mybehaviour.js +3 -4
- data/public/stylesheets/default.css +449 -0
- data/public/stylesheets/live_tree.css +62 -0
- data/public/stylesheets/scaffold.css +74 -0
- data/script/about +3 -0
- data/script/benchmarker +19 -0
- data/script/breakpointer +3 -0
- data/script/console +3 -0
- data/script/create_db +7 -0
- data/script/destroy +3 -0
- data/script/generate +3 -0
- data/script/plugin +3 -0
- data/script/profiler +34 -0
- data/script/runner +3 -0
- data/script/server +3 -0
- data/test/unit/elt_test.rb +11 -0
- data/test/unit/mail_test.rb +29 -0
- metadata +27 -40
- data/test/fixtures/attachments.yml +0 -13
- data/test/fixtures/choices.yml +0 -13
- data/test/fixtures/elts.yml +0 -36
- data/test/fixtures/img.png +0 -0
- data/test/fixtures/mail/avatar +0 -249
- data/test/fixtures/mail/mail_ruby +0 -39
- data/test/fixtures/mail/mail_rubyChild +0 -30
- data/test/fixtures/mail/mail_rubyChild2 +0 -30
- data/test/fixtures/mail/mail_rubyWithAttachment +0 -7932
- data/test/fixtures/mail/mail_rubyWithSubject +0 -27
- data/test/fixtures/mails.yml +0 -13
- data/test/fixtures/people.yml +0 -68
- data/test/fixtures/subscribers.yml +0 -14
- data/test/fixtures/users.yml +0 -41
- data/test/functional/account_controller_test.rb +0 -317
- data/test/functional/elt_controller_test.rb +0 -87
- data/test/functional/person_controller_test.rb +0 -18
- data/test/functional/subscriber_controller_test.rb +0 -128
- data/test/mocks/test/time.rb +0 -17
- data/test/mocks/test/user_notify.rb +0 -16
- data/test/test_helper.rb +0 -72
@@ -1,87 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
-
require 'elt_controller'
|
3
|
-
|
4
|
-
# Re-raise errors caught by the controller.
|
5
|
-
class EltController; def rescue_action(e) raise e end; end
|
6
|
-
|
7
|
-
class EltControllerTest < Test::Unit::TestCase
|
8
|
-
fixtures :people, LoginEngine.config(:user_table).to_sym, :elts, :mails, :attachments, :subscribers
|
9
|
-
|
10
|
-
def setup
|
11
|
-
@controller = EltController.new
|
12
|
-
@request = ActionController::TestRequest.new
|
13
|
-
@response = ActionController::TestResponse.new
|
14
|
-
|
15
|
-
@elt = Elt.find 'ROOT'
|
16
|
-
end
|
17
|
-
|
18
|
-
def test_preview
|
19
|
-
post :preview, :id => @elt.id, :commit => "Propose!",
|
20
|
-
:elt =>{
|
21
|
-
:body => "Un joli test", :subject => "test_create", :parent_id => @elt.id }
|
22
|
-
assert_equal 3, @elt.children_count
|
23
|
-
assert_response :success
|
24
|
-
end
|
25
|
-
|
26
|
-
def test_create
|
27
|
-
post :create, :id => @elt.id, :commit => "Propose!",
|
28
|
-
:elt =>{
|
29
|
-
:body => "Un joli test", :subject => "test_create", :parent_id => @elt.id }
|
30
|
-
assert_equal 4, @elt.children_count
|
31
|
-
assert_response :success
|
32
|
-
end
|
33
|
-
|
34
|
-
def test_create_login
|
35
|
-
login
|
36
|
-
post :create, :id => @elt.id, :commit => "Propose!",
|
37
|
-
:elt =>{
|
38
|
-
:body => "Un joli test", :subject => "test_create", :parent_id => @elt.id }
|
39
|
-
assert_equal 4, @elt.children_count
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_vote_pro
|
43
|
-
login
|
44
|
-
post :vote, :id => @elt.id, :choice => { :value => "+1" }, :commit => "Vote!"
|
45
|
-
assert_equal 4, @elt.children_count
|
46
|
-
assert_equal 1, @elt.result
|
47
|
-
end
|
48
|
-
|
49
|
-
def test_vote_con
|
50
|
-
login
|
51
|
-
post :vote, :id => @elt.id, :choice => { :value => "-1" }, :commit => "Vote!"
|
52
|
-
assert_equal 4, @elt.children_count
|
53
|
-
assert_equal -1, @elt.result
|
54
|
-
end
|
55
|
-
|
56
|
-
def test_vote_zero
|
57
|
-
login
|
58
|
-
post :vote, :id => @elt.id, :choice => { :value => "+1" }, :commit => "Vote!"
|
59
|
-
post :vote, :id => @elt.id, :choice => { :value => "+1" }, :commit => "Vote!"
|
60
|
-
assert_equal 5, @elt.children_count
|
61
|
-
assert_equal 0, @elt.result
|
62
|
-
|
63
|
-
post :vote, :id => @elt.id, :choice => { :value => "-1" }, :commit => "Vote!"
|
64
|
-
post :vote, :id => @elt.id, :choice => { :value => "-1" }, :commit => "Vote!"
|
65
|
-
assert_equal 7, @elt.children_count
|
66
|
-
assert_equal 0, @elt.result
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_fight_spam
|
70
|
-
post :create, :id => @elt.id, :commit => "Propose!", :elt => {
|
71
|
-
:parent_id => @elt.id,
|
72
|
-
:subject => "cheap_atenolol<a_href='http_pohyis.org_tramadol_'",
|
73
|
-
:body => "Un spam" }
|
74
|
-
assert_equal 3, @elt.children_count
|
75
|
-
|
76
|
-
post :create, :id => @elt.id, :commit => "Propose!", :elt => {
|
77
|
-
:parent_id => @elt.id,
|
78
|
-
:subject => "href='http_pohyis.org_tramadol_'",
|
79
|
-
:body => "Un spam" }
|
80
|
-
assert_equal 3, @elt.children_count
|
81
|
-
|
82
|
-
post :create, :id => @elt.id, :commit => "Propose!", :elt => {
|
83
|
-
:parent_id => @elt.id, :subject => ">'", :body => "Un spam" }
|
84
|
-
assert_equal 3, @elt.children_count
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
@@ -1,18 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
-
require 'person_controller'
|
3
|
-
|
4
|
-
# Re-raise errors caught by the controller.
|
5
|
-
class PersonController; def rescue_action(e) raise e end; end
|
6
|
-
|
7
|
-
class PersonControllerTest < Test::Unit::TestCase
|
8
|
-
def setup
|
9
|
-
@controller = PersonController.new
|
10
|
-
@request = ActionController::TestRequest.new
|
11
|
-
@response = ActionController::TestResponse.new
|
12
|
-
end
|
13
|
-
|
14
|
-
# Replace this with your real tests.
|
15
|
-
def test_truth
|
16
|
-
assert true
|
17
|
-
end
|
18
|
-
end
|
@@ -1,128 +0,0 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../test_helper'
|
2
|
-
require 'subscriber_controller'
|
3
|
-
|
4
|
-
# Re-raise errors caught by the controller.
|
5
|
-
class SubscriberController; def rescue_action(e) raise e end; end
|
6
|
-
|
7
|
-
class SubscriberControllerTest < Test::Unit::TestCase
|
8
|
-
fixtures :people, :users, :elts, :mails, :attachments, :subscribers
|
9
|
-
|
10
|
-
def setup
|
11
|
-
@controller = SubscriberController.new
|
12
|
-
@request = ActionController::TestRequest.new
|
13
|
-
@response = ActionController::TestResponse.new
|
14
|
-
|
15
|
-
ActionMailer::Base.delivery_method = :test
|
16
|
-
ActionMailer::Base.perform_deliveries = true
|
17
|
-
ActionMailer::Base.deliveries = []
|
18
|
-
|
19
|
-
@expected = TMail::Mail.new
|
20
|
-
@expected.set_content_type "text", "plain", { "charset" => CHARSET }
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_subscribe
|
24
|
-
login
|
25
|
-
|
26
|
-
elt = Elt.find('0')
|
27
|
-
numSubscribers = elt.subscribers.size
|
28
|
-
post :subscribe, :id => '0'
|
29
|
-
elt = Elt.find('0')
|
30
|
-
assert_equal (numSubscribers + 1), elt.subscribers.size
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_unsubscribe
|
34
|
-
login
|
35
|
-
post :subscribe, :id => '0'
|
36
|
-
|
37
|
-
elt = Elt.find('0')
|
38
|
-
numSubscribers = elt.subscribers.size
|
39
|
-
post :subscribe, :id => '0'
|
40
|
-
elt = Elt.find('0')
|
41
|
-
assert_equal (numSubscribers - 1), elt.subscribers.size
|
42
|
-
end
|
43
|
-
|
44
|
-
|
45
|
-
def test_post_elt
|
46
|
-
#puts "CCCCCCCC"
|
47
|
-
#puts Elt.find('0').all_recipients.join(', ')
|
48
|
-
|
49
|
-
controller = @controller
|
50
|
-
@controller = EltController.new
|
51
|
-
|
52
|
-
numChildren = Elt.find(0).children.size
|
53
|
-
numMails = Mail.find_all.size
|
54
|
-
|
55
|
-
post :create, :elt => { :parent_id => '0', :subject => 'A new mail',
|
56
|
-
:body => 'testing a new mail' }
|
57
|
-
|
58
|
-
assert_equal 1, ActionMailer::Base.deliveries.size
|
59
|
-
assert_equal (numChildren + 1), Elt.find(0).children.size
|
60
|
-
assert_equal (numMails + 1), Mail.find_all.size
|
61
|
-
|
62
|
-
mail = ActionMailer::Base.deliveries[0]
|
63
|
-
|
64
|
-
elt = Elt.find(0).children[0]
|
65
|
-
|
66
|
-
assert_equal mail.destinations, elt.all_recipients.collect { |i| i.email }.reject { |i| i == nil }
|
67
|
-
assert_equal '0@'+ActionMailer::Base.server_settings[:domain], mail.to[0]
|
68
|
-
assert_equal ANONYMOUS_POSTER+' <'+ANONYMOUS_POSTER+'@'+ActionMailer::Base.server_settings[:domain]+'>', mail.from_addrs[0].to_s
|
69
|
-
|
70
|
-
@controller = controller
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_post_loggedin_elt
|
74
|
-
login
|
75
|
-
|
76
|
-
controller = @controller
|
77
|
-
@controller = EltController.new
|
78
|
-
|
79
|
-
post :create, :elt => { :parent_id => '0', :subject => 'A new mail',
|
80
|
-
:body => 'testing a new mail as user my_bob' }
|
81
|
-
|
82
|
-
mail = ActionMailer::Base.deliveries[1]
|
83
|
-
elt = Elt.find(0).children[0]
|
84
|
-
|
85
|
-
# Because the logged in user is not email verified!
|
86
|
-
assert_equal 'my_bob <'+ANONYMOUS_POSTER+'@'+ActionMailer::Base.server_settings[:domain]+'>', mail.from_addrs[0].to_s
|
87
|
-
assert_equal elt.parent.mail.message, mail.references.to_s
|
88
|
-
|
89
|
-
# Check every body replies to the mailing list
|
90
|
-
assert_equal mail.to, mail.reply_to
|
91
|
-
|
92
|
-
@controller = controller
|
93
|
-
end
|
94
|
-
|
95
|
-
def test_send_elt
|
96
|
-
fixture = read_fixture('mail_ruby').to_s
|
97
|
-
orig = TMail::Mail.parse(fixture)
|
98
|
-
Mailman.receive(fixture)
|
99
|
-
|
100
|
-
# Created the elt itself, and a parent mailing list element called
|
101
|
-
# "mailingList
|
102
|
-
assert_equal 2, ActionMailer::Base.deliveries.size
|
103
|
-
|
104
|
-
mail = ActionMailer::Base.deliveries[0]
|
105
|
-
assert_equal 'mailingList', mail.subject
|
106
|
-
|
107
|
-
mail = ActionMailer::Base.deliveries[1]
|
108
|
-
assert_equal orig.message_id, mail.message_id
|
109
|
-
assert_equal orig.references, mail.references
|
110
|
-
assert_equal orig.subject, mail.subject
|
111
|
-
assert_equal orig.body, mail.body
|
112
|
-
assert_equal orig.to, mail.to
|
113
|
-
assert_equal orig.cc, mail.cc
|
114
|
-
assert_equal orig.from, mail.from
|
115
|
-
assert_equal orig.sender(nil), mail.sender(nil)
|
116
|
-
assert_equal orig.date, mail.date
|
117
|
-
assert_equal orig.reply_to, mail.reply_to
|
118
|
-
|
119
|
-
# Check that we are actually sending the mail to other recipients
|
120
|
-
assert_not_equal orig.bcc, mail.bcc
|
121
|
-
|
122
|
-
assert_equal mail.destinations, mail.bcc
|
123
|
-
|
124
|
-
elt = Mail.find_by_message(mail.message_id).elt
|
125
|
-
assert_equal mail.destinations, elt.all_recipients.collect { |i| i.email }.reject { |i| i == nil }
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
data/test/mocks/test/time.rb
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'time'
|
2
|
-
|
3
|
-
Time.class_eval {
|
4
|
-
@@advance_by_days = 0
|
5
|
-
cattr_accessor :advance_by_days
|
6
|
-
|
7
|
-
class << Time
|
8
|
-
alias now_old now
|
9
|
-
def now
|
10
|
-
if Time.advance_by_days != 0
|
11
|
-
return Time.at(now_old.to_i + Time.advance_by_days * 60 * 60 * 24 + 1)
|
12
|
-
else
|
13
|
-
now_old
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
}
|
@@ -1,16 +0,0 @@
|
|
1
|
-
require 'models/user_notify.rb'
|
2
|
-
|
3
|
-
ActionMailer::Base.class_eval {
|
4
|
-
@@inject_one_error = false
|
5
|
-
cattr_accessor :inject_one_error
|
6
|
-
|
7
|
-
private
|
8
|
-
def perform_delivery_test(mail)
|
9
|
-
if inject_one_error
|
10
|
-
ActionMailer::Base::inject_one_error = false
|
11
|
-
raise "Failed to send email" if raise_delivery_errors
|
12
|
-
else
|
13
|
-
deliveries << mail
|
14
|
-
end
|
15
|
-
end
|
16
|
-
}
|
data/test/test_helper.rb
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
ENV["RAILS_ENV"] = "test"
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
3
|
-
require 'test_help'
|
4
|
-
|
5
|
-
class Test::Unit::TestCase
|
6
|
-
FIXTURES_PATH = File.dirname(__FILE__) + '/fixtures'
|
7
|
-
CHARSET = "utf-8"
|
8
|
-
|
9
|
-
include ActionMailer::Quoting
|
10
|
-
|
11
|
-
|
12
|
-
# Transactional fixtures accelerate your tests by wrapping each test method
|
13
|
-
# in a transaction that's rolled back on completion. This ensures that the
|
14
|
-
# test database remains unchanged so your fixtures don't have to be reloaded
|
15
|
-
# between every test method. Fewer database queries means faster tests.
|
16
|
-
#
|
17
|
-
# Read Mike Clark's excellent walkthrough at
|
18
|
-
# http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
|
19
|
-
#
|
20
|
-
# Every Active Record database supports transactions except MyISAM tables
|
21
|
-
# in MySQL. Turn off transactional fixtures in this case; however, if you
|
22
|
-
# don't care one way or the other, switching from MyISAM to InnoDB tables
|
23
|
-
# is recommended.
|
24
|
-
self.use_transactional_fixtures = true
|
25
|
-
|
26
|
-
# Instantiated fixtures are slow, but give you @david where otherwise you
|
27
|
-
# would need people(:david). If you don't want to migrate your existing
|
28
|
-
# test cases which use the @david style and don't mind the speed hit (each
|
29
|
-
# instantiated fixtures translates to a database query per test method),
|
30
|
-
# then set this back to true.
|
31
|
-
self.use_instantiated_fixtures = false
|
32
|
-
|
33
|
-
# Add more helper methods to be used by all tests here...
|
34
|
-
#
|
35
|
-
|
36
|
-
def Xteardown
|
37
|
-
self.class.fixture_table_names.reverse.each do |table_name|
|
38
|
-
klass_name = Inflector.classify(table_name.to_s)
|
39
|
-
if Object.const_defined?(klass_name)
|
40
|
-
klass = Object.const_get(klass_name)
|
41
|
-
klass.connection.delete("DELETE FROM #{table_name}", 'Fixture Delete')
|
42
|
-
else
|
43
|
-
flunk("Cannot find class for table '#{table_name}' to delete fixtures")
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
|
49
|
-
#
|
50
|
-
# A simple convenience method, its name makes it obvious isn't it ;)
|
51
|
-
#
|
52
|
-
def login
|
53
|
-
controller = @controller
|
54
|
-
@controller = AccountController.new
|
55
|
-
|
56
|
-
post :login, :person => { :name => "my_bob", :email => "manu@noos.fr" },
|
57
|
-
:user => { :password => "my_bob" }
|
58
|
-
assert_not_nil session[:person]
|
59
|
-
assert_not_nil session[:user]
|
60
|
-
|
61
|
-
@controller = controller
|
62
|
-
end
|
63
|
-
|
64
|
-
def read_fixture(action)
|
65
|
-
IO.readlines("#{FIXTURES_PATH}/mail/#{action}")
|
66
|
-
end
|
67
|
-
|
68
|
-
def encode(subject)
|
69
|
-
quoted_printable(subject, CHARSET)
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|