carrier 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +11 -7
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/app/controllers/carrier/messages_controller.rb +7 -2
- data/app/views/carrier/messages/_message.html.erb +1 -2
- data/app/views/carrier/messages/_reply.html.erb +2 -2
- data/app/views/carrier/messages/show.html.erb +0 -3
- data/carrier.gemspec +29 -23
- data/config/locales/carrier.en.yml +4 -0
- data/config/locales/carrier.ru.yml +4 -0
- data/lib/carrier/rails/engine.rb +1 -1
- data/spec/dummy/app/helpers/application_helper.rb +1 -0
- data/spec/dummy/app/views/devise/registrations/new.html.erb +3 -0
- data/spec/dummy/app/views/layouts/application.html.erb +1 -1
- data/spec/dummy/config/cucumber.yml +8 -0
- data/spec/dummy/config/database.yml +2 -2
- data/spec/dummy/config/environments/test.rb +2 -0
- data/spec/dummy/db/schema.rb +12 -12
- data/spec/dummy/factories/message.rb +9 -0
- data/spec/dummy/factories/user.rb +13 -0
- data/spec/dummy/features/carrier.feature +79 -0
- data/spec/dummy/features/step_definitions/debug_steps.rb +15 -0
- data/spec/dummy/features/step_definitions/resources_steps.rb +15 -0
- data/spec/dummy/features/step_definitions/web_steps.rb +301 -0
- data/spec/dummy/features/support/carrier_routes_helper.rb +5 -0
- data/spec/dummy/features/support/env.rb +47 -0
- data/spec/dummy/features/support/paths.rb +34 -0
- data/spec/dummy/features/support/rails_helper.rb +50 -0
- data/spec/dummy/features/support/singleton.rb +17 -0
- data/spec/dummy/features/support/transaction.rb +30 -0
- data/spec/dummy/lib/tasks/cucumber.rake +65 -0
- data/spec/dummy/script/cucumber +10 -0
- data/spec/dummy_spec_helper.rb +12 -26
- metadata +189 -136
- data/TODO +0 -1
- data/script/rails +0 -6
- data/spec/integration/carrier_spec.rb +0 -73
- data/test/helper.rb +0 -18
- data/test/test_carrier.rb +0 -7
data/Gemfile
CHANGED
@@ -6,22 +6,26 @@ gem 'unread'
|
|
6
6
|
gem 'sugar-high'
|
7
7
|
gem 'sweetloader'
|
8
8
|
|
9
|
-
group :development
|
10
|
-
gem 'rails', '~>3.1'
|
9
|
+
group :development do
|
11
10
|
gem 'unicorn'
|
11
|
+
gem 'rake-kit'
|
12
|
+
gem "jeweler", ">= 1.6.4"
|
13
|
+
end
|
14
|
+
|
15
|
+
group :development, :test do
|
16
|
+
gem 'rails', '3.2.2'
|
12
17
|
gem 'mysql2'
|
13
18
|
gem 'devise'
|
14
|
-
gem 'rake-kit'
|
15
19
|
gem 'cutter'
|
16
|
-
gem
|
17
|
-
gem "rspec-rails", '>= 2.5'
|
20
|
+
# gem 'ruby-debug19', :require => "ruby-debug"
|
18
21
|
end
|
19
22
|
|
20
23
|
group :test do
|
21
|
-
gem '
|
22
|
-
gem '
|
24
|
+
gem "rspec-rails", '>= 2.5'
|
25
|
+
gem 'factory_girl_rails'
|
23
26
|
gem 'spork'
|
24
27
|
gem "launchy"
|
25
28
|
gem 'shoulda'
|
29
|
+
gem 'cucumber-rails'
|
26
30
|
end
|
27
31
|
|
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
@@ -3,7 +3,13 @@
|
|
3
3
|
module Carrier
|
4
4
|
class MessagesController < ApplicationController
|
5
5
|
|
6
|
-
|
6
|
+
before_filter :only => [:show] do
|
7
|
+
@message = Message.find(params[:id], :include => :chain)
|
8
|
+
|
9
|
+
@message.chain_messages.each do |message|
|
10
|
+
message.mark_as_read! :for => current_user
|
11
|
+
end
|
12
|
+
end
|
7
13
|
|
8
14
|
def reply
|
9
15
|
@message = Message.new_answer params[:id], current_user
|
@@ -24,7 +30,6 @@ module Carrier
|
|
24
30
|
end
|
25
31
|
|
26
32
|
def show
|
27
|
-
@message = Message.find(params[:id], :include => :chain)
|
28
33
|
end
|
29
34
|
|
30
35
|
# TODO: introduce [:id or :username] key to be passed with to= param
|
@@ -1,8 +1,7 @@
|
|
1
|
-
<%=
|
1
|
+
<%= content_tag_for :div, message do %>
|
2
2
|
<div class="message_ma_wrapper ma_open">
|
3
3
|
<div class="message_ma_date"><%= raw message.date_formatted %></div>
|
4
4
|
<div class="message_ma_user"><%= message.sender_name %></div>
|
5
|
-
<div class="message_ma_subj"><b><%= message.subject %></b></div>
|
6
5
|
<div><%= message.content %></div>
|
7
6
|
</div>
|
8
7
|
<% end %>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
<div class="message_ma_new_wrapper replay_message_ma">
|
6
6
|
<h4><span class=""><%= current_user.username %></span> ⇒ <span class="red"><%= @message.recipients_names %></span></h4>
|
7
7
|
<div class="field">
|
8
|
-
<%= f.label
|
8
|
+
<%= f.label :content, t('views.carrier.reply_content') %><br />
|
9
9
|
<%= f.text_area :content, :rows => 6 %>
|
10
10
|
</div>
|
11
11
|
|
@@ -16,7 +16,7 @@
|
|
16
16
|
<%= f.hidden_field :subject %>
|
17
17
|
|
18
18
|
<div class="actions">
|
19
|
-
<%= f.submit '
|
19
|
+
<%= f.submit t('views.carrier.reply_send') %>
|
20
20
|
</div>
|
21
21
|
</div>
|
22
22
|
<% end %>
|
data/carrier.gemspec
CHANGED
@@ -5,17 +5,16 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "carrier"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["stanislaw"]
|
12
|
-
s.date = "
|
12
|
+
s.date = "2012-04-05"
|
13
13
|
s.description = "Raw github-like messaging system to reuse across Rails apps. Acts as Rails 3.1 mountable engine. Fast and robust."
|
14
14
|
s.email = "s.pankevich@gmail.com"
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE.txt",
|
17
|
-
"README.textile"
|
18
|
-
"TODO"
|
17
|
+
"README.textile"
|
19
18
|
]
|
20
19
|
s.files = [
|
21
20
|
".document",
|
@@ -25,7 +24,6 @@ Gem::Specification.new do |s|
|
|
25
24
|
"MIT-LICENSE",
|
26
25
|
"README.textile",
|
27
26
|
"Rakefile",
|
28
|
-
"TODO",
|
29
27
|
"VERSION",
|
30
28
|
"app/assets/images/.gitkeep",
|
31
29
|
"app/assets/images/carrier/chosen-sprite.png",
|
@@ -84,7 +82,6 @@ Gem::Specification.new do |s|
|
|
84
82
|
"lib/carrier/rails/helpers.rb",
|
85
83
|
"lib/carrier/version.rb",
|
86
84
|
"lib/tasks/carrier_tasks.rake",
|
87
|
-
"script/rails",
|
88
85
|
"spec/carrier/app/controllers/application_controller_spec.rb",
|
89
86
|
"spec/carrier/app/models/message_scopes_spec.rb",
|
90
87
|
"spec/carrier/app/models/message_spec.rb",
|
@@ -129,6 +126,7 @@ Gem::Specification.new do |s|
|
|
129
126
|
"spec/dummy/config.ru",
|
130
127
|
"spec/dummy/config/application.rb",
|
131
128
|
"spec/dummy/config/boot.rb",
|
129
|
+
"spec/dummy/config/cucumber.yml",
|
132
130
|
"spec/dummy/config/database.yml",
|
133
131
|
"spec/dummy/config/database_mysql.yml",
|
134
132
|
"spec/dummy/config/database_pgsql.yml",
|
@@ -154,11 +152,25 @@ Gem::Specification.new do |s|
|
|
154
152
|
"spec/dummy/db/migrate/20110814164229_create_chains.rb",
|
155
153
|
"spec/dummy/db/schema.rb",
|
156
154
|
"spec/dummy/db/seeds.rb",
|
155
|
+
"spec/dummy/factories/message.rb",
|
156
|
+
"spec/dummy/factories/user.rb",
|
157
|
+
"spec/dummy/features/carrier.feature",
|
158
|
+
"spec/dummy/features/step_definitions/debug_steps.rb",
|
159
|
+
"spec/dummy/features/step_definitions/resources_steps.rb",
|
160
|
+
"spec/dummy/features/step_definitions/web_steps.rb",
|
161
|
+
"spec/dummy/features/support/carrier_routes_helper.rb",
|
162
|
+
"spec/dummy/features/support/env.rb",
|
163
|
+
"spec/dummy/features/support/paths.rb",
|
164
|
+
"spec/dummy/features/support/rails_helper.rb",
|
165
|
+
"spec/dummy/features/support/singleton.rb",
|
166
|
+
"spec/dummy/features/support/transaction.rb",
|
167
|
+
"spec/dummy/lib/tasks/cucumber.rake",
|
157
168
|
"spec/dummy/log/.gitkeep",
|
158
169
|
"spec/dummy/public/404.html",
|
159
170
|
"spec/dummy/public/422.html",
|
160
171
|
"spec/dummy/public/500.html",
|
161
172
|
"spec/dummy/public/favicon.ico",
|
173
|
+
"spec/dummy/script/cucumber",
|
162
174
|
"spec/dummy/script/rails",
|
163
175
|
"spec/dummy/test/fixtures/posts.yml",
|
164
176
|
"spec/dummy/test/fixtures/users.yml",
|
@@ -169,18 +181,15 @@ Gem::Specification.new do |s|
|
|
169
181
|
"spec/dummy/test/unit/post_test.rb",
|
170
182
|
"spec/dummy/test/unit/user_test.rb",
|
171
183
|
"spec/dummy_spec_helper.rb",
|
172
|
-
"spec/integration/carrier_spec.rb",
|
173
184
|
"spec/requests/main_spec.rb",
|
174
185
|
"spec/support/controller_macros.rb",
|
175
186
|
"spec/support/factories.rb",
|
176
|
-
"spec/support/rspec_helpers.rb"
|
177
|
-
"test/helper.rb",
|
178
|
-
"test/test_carrier.rb"
|
187
|
+
"spec/support/rspec_helpers.rb"
|
179
188
|
]
|
180
189
|
s.homepage = "http://github.com/stanislaw/carrier"
|
181
190
|
s.licenses = ["MIT"]
|
182
191
|
s.require_paths = ["lib"]
|
183
|
-
s.rubygems_version = "1.8.
|
192
|
+
s.rubygems_version = "1.8.19"
|
184
193
|
s.summary = "Raw github-like messaging system to reuse across Rails apps"
|
185
194
|
|
186
195
|
if s.respond_to? :specification_version then
|
@@ -192,28 +201,26 @@ Gem::Specification.new do |s|
|
|
192
201
|
s.add_runtime_dependency(%q<unread>, [">= 0"])
|
193
202
|
s.add_runtime_dependency(%q<sugar-high>, [">= 0"])
|
194
203
|
s.add_runtime_dependency(%q<sweetloader>, [">= 0"])
|
195
|
-
s.add_development_dependency(%q<rails>, ["~> 3.1"])
|
196
204
|
s.add_development_dependency(%q<unicorn>, [">= 0"])
|
205
|
+
s.add_development_dependency(%q<rake-kit>, [">= 0"])
|
206
|
+
s.add_development_dependency(%q<jeweler>, [">= 1.6.4"])
|
207
|
+
s.add_development_dependency(%q<rails>, ["= 3.2.2"])
|
197
208
|
s.add_development_dependency(%q<mysql2>, [">= 0"])
|
198
209
|
s.add_development_dependency(%q<devise>, [">= 0"])
|
199
|
-
s.add_development_dependency(%q<rake-kit>, [">= 0"])
|
200
210
|
s.add_development_dependency(%q<cutter>, [">= 0"])
|
201
|
-
s.add_development_dependency(%q<jeweler>, [">= 1.6.4"])
|
202
|
-
s.add_development_dependency(%q<rspec-rails>, [">= 2.5"])
|
203
211
|
else
|
204
212
|
s.add_dependency(%q<require_all>, [">= 0"])
|
205
213
|
s.add_dependency(%q<kaminari>, [">= 0"])
|
206
214
|
s.add_dependency(%q<unread>, [">= 0"])
|
207
215
|
s.add_dependency(%q<sugar-high>, [">= 0"])
|
208
216
|
s.add_dependency(%q<sweetloader>, [">= 0"])
|
209
|
-
s.add_dependency(%q<rails>, ["~> 3.1"])
|
210
217
|
s.add_dependency(%q<unicorn>, [">= 0"])
|
218
|
+
s.add_dependency(%q<rake-kit>, [">= 0"])
|
219
|
+
s.add_dependency(%q<jeweler>, [">= 1.6.4"])
|
220
|
+
s.add_dependency(%q<rails>, ["= 3.2.2"])
|
211
221
|
s.add_dependency(%q<mysql2>, [">= 0"])
|
212
222
|
s.add_dependency(%q<devise>, [">= 0"])
|
213
|
-
s.add_dependency(%q<rake-kit>, [">= 0"])
|
214
223
|
s.add_dependency(%q<cutter>, [">= 0"])
|
215
|
-
s.add_dependency(%q<jeweler>, [">= 1.6.4"])
|
216
|
-
s.add_dependency(%q<rspec-rails>, [">= 2.5"])
|
217
224
|
end
|
218
225
|
else
|
219
226
|
s.add_dependency(%q<require_all>, [">= 0"])
|
@@ -221,14 +228,13 @@ Gem::Specification.new do |s|
|
|
221
228
|
s.add_dependency(%q<unread>, [">= 0"])
|
222
229
|
s.add_dependency(%q<sugar-high>, [">= 0"])
|
223
230
|
s.add_dependency(%q<sweetloader>, [">= 0"])
|
224
|
-
s.add_dependency(%q<rails>, ["~> 3.1"])
|
225
231
|
s.add_dependency(%q<unicorn>, [">= 0"])
|
232
|
+
s.add_dependency(%q<rake-kit>, [">= 0"])
|
233
|
+
s.add_dependency(%q<jeweler>, [">= 1.6.4"])
|
234
|
+
s.add_dependency(%q<rails>, ["= 3.2.2"])
|
226
235
|
s.add_dependency(%q<mysql2>, [">= 0"])
|
227
236
|
s.add_dependency(%q<devise>, [">= 0"])
|
228
|
-
s.add_dependency(%q<rake-kit>, [">= 0"])
|
229
237
|
s.add_dependency(%q<cutter>, [">= 0"])
|
230
|
-
s.add_dependency(%q<jeweler>, [">= 1.6.4"])
|
231
|
-
s.add_dependency(%q<rspec-rails>, [">= 2.5"])
|
232
238
|
end
|
233
239
|
end
|
234
240
|
|
data/lib/carrier/rails/engine.rb
CHANGED
@@ -2,7 +2,7 @@ module Carrier
|
|
2
2
|
|
3
3
|
def self.carrier_requires
|
4
4
|
validators = Dir[File.join ::Carrier.config.root, "app/validators/**/*.rb"]
|
5
|
-
models = Dir[File.join ::Carrier.config.root, "app/models/**/*.rb"]
|
5
|
+
models = Dir[File.join ::Carrier.config.root, "app/models/carrier/**/*.rb"]
|
6
6
|
|
7
7
|
(validators + models).each do |rb_file|
|
8
8
|
require_dependency rb_file
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%
|
2
|
+
rerun = File.file?('rerun.txt') ? IO.read('rerun.txt') : ""
|
3
|
+
rerun_opts = rerun.to_s.strip.empty? ? "--format #{ENV['CUCUMBER_FORMAT'] || 'progress'} features" : "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} #{rerun}"
|
4
|
+
std_opts = "--format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} --strict --tags ~@wip"
|
5
|
+
%>
|
6
|
+
default: <%= std_opts %> features
|
7
|
+
wip: --tags @wip:3 --wip features
|
8
|
+
rerun: <%= rerun_opts %> --format rerun --out rerun.txt --strict --tags ~@wip
|
@@ -3,7 +3,7 @@ development:
|
|
3
3
|
host: localhost
|
4
4
|
database: carrier_development
|
5
5
|
username: root
|
6
|
-
password:
|
6
|
+
password:
|
7
7
|
encoding: utf8
|
8
8
|
|
9
9
|
test: &test
|
@@ -11,7 +11,7 @@ test: &test
|
|
11
11
|
host: localhost
|
12
12
|
database: carrier_test
|
13
13
|
username: root
|
14
|
-
password:
|
14
|
+
password:
|
15
15
|
encoding: utf8
|
16
16
|
|
17
17
|
production:
|
@@ -7,6 +7,8 @@ Dummy::Application.configure do
|
|
7
7
|
# and recreated between test runs. Don't rely on the data there!
|
8
8
|
config.cache_classes = true
|
9
9
|
|
10
|
+
config.use_transactional_fixtures = true
|
11
|
+
|
10
12
|
# Configure static asset server for tests with Cache-Control for performance
|
11
13
|
config.serve_static_assets = true
|
12
14
|
config.static_cache_control = "public, max-age=3600"
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -14,14 +14,14 @@
|
|
14
14
|
ActiveRecord::Schema.define(:version => 20110814164229) do
|
15
15
|
|
16
16
|
create_table "chains", :force => true do |t|
|
17
|
-
t.string "participants", :default => "--- []\n
|
18
|
-
t.string "archived_for", :default => "--- []\n
|
17
|
+
t.string "participants", :default => "--- []\n"
|
18
|
+
t.string "archived_for", :default => "--- []\n"
|
19
19
|
t.integer "having_chain_id"
|
20
20
|
t.string "having_chain_type"
|
21
|
-
t.string "chain_type", :default => "--- :simple\n"
|
21
|
+
t.string "chain_type", :default => "--- :simple\n...\n"
|
22
22
|
t.integer "messages_count", :default => 0
|
23
|
-
t.datetime "created_at"
|
24
|
-
t.datetime "updated_at"
|
23
|
+
t.datetime "created_at", :null => false
|
24
|
+
t.datetime "updated_at", :null => false
|
25
25
|
end
|
26
26
|
|
27
27
|
add_index "chains", ["archived_for", "participants"], :name => "participants_and_archived_index"
|
@@ -30,21 +30,21 @@ ActiveRecord::Schema.define(:version => 20110814164229) do
|
|
30
30
|
|
31
31
|
create_table "messages", :force => true do |t|
|
32
32
|
t.integer "sender"
|
33
|
-
t.string "recipients", :default => "--- []\n
|
33
|
+
t.string "recipients", :default => "--- []\n"
|
34
34
|
t.string "subject"
|
35
35
|
t.text "content"
|
36
36
|
t.boolean "last", :default => false
|
37
37
|
t.integer "chain_id"
|
38
|
-
t.datetime "created_at"
|
39
|
-
t.datetime "updated_at"
|
38
|
+
t.datetime "created_at", :null => false
|
39
|
+
t.datetime "updated_at", :null => false
|
40
40
|
end
|
41
41
|
|
42
42
|
add_index "messages", ["chain_id"], :name => "index_messages_on_chain_id"
|
43
43
|
add_index "messages", ["created_at"], :name => "index_messages_on_created_at"
|
44
44
|
|
45
45
|
create_table "posts", :force => true do |t|
|
46
|
-
t.datetime "created_at"
|
47
|
-
t.datetime "updated_at"
|
46
|
+
t.datetime "created_at", :null => false
|
47
|
+
t.datetime "updated_at", :null => false
|
48
48
|
end
|
49
49
|
|
50
50
|
create_table "read_marks", :force => true do |t|
|
@@ -69,8 +69,8 @@ ActiveRecord::Schema.define(:version => 20110814164229) do
|
|
69
69
|
t.string "last_sign_in_ip"
|
70
70
|
t.string "name"
|
71
71
|
t.string "username"
|
72
|
-
t.datetime "created_at"
|
73
|
-
t.datetime "updated_at"
|
72
|
+
t.datetime "created_at", :null => false
|
73
|
+
t.datetime "updated_at", :null => false
|
74
74
|
end
|
75
75
|
|
76
76
|
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
|
@@ -0,0 +1,79 @@
|
|
1
|
+
Feature:
|
2
|
+
In order to have simple github-like messaging functionality on my site
|
3
|
+
As a user
|
4
|
+
I want to send, receive and manage messages easily
|
5
|
+
|
6
|
+
Scenario: Listing Carrier main page when there are no messages created
|
7
|
+
Given I am logged in as user
|
8
|
+
When I am on Carrier's main page
|
9
|
+
Then I should see "No messages yet"
|
10
|
+
|
11
|
+
Scenario: Listing Carrier inbox page when there is a message I sent
|
12
|
+
Given There is user with username "stanislaw"
|
13
|
+
And There is second user with username "miloviza"
|
14
|
+
And There is a message with content "Hello, Miloviza!"
|
15
|
+
And I am logged in as user
|
16
|
+
When I am on Carrier's 'inbox' page
|
17
|
+
Then I should see "No messages yet"
|
18
|
+
|
19
|
+
Scenario: Listing Carrier 'sent' page when there is a message I sent
|
20
|
+
Given There is user with username "stanislaw"
|
21
|
+
And There is second user with username "miloviza"
|
22
|
+
And There is a message with content "Hello, Miloviza!"
|
23
|
+
And I am logged in as user
|
24
|
+
When I am on Carrier's 'sent' page
|
25
|
+
Then I should see "Hello, Miloviza!"
|
26
|
+
|
27
|
+
|
28
|
+
Scenario: Creating a message
|
29
|
+
Given There is user with username "stanislaw"
|
30
|
+
And There is second user with username "miloviza"
|
31
|
+
And I am logged in as user
|
32
|
+
And I go to new message path
|
33
|
+
And I select "miloviza" from "Recipients"
|
34
|
+
And I fill in "Subject" with "Subject for test message"
|
35
|
+
And I fill in "Message" with "Content for test message"
|
36
|
+
And I press "Send"
|
37
|
+
Then I should see "Message successfully created"
|
38
|
+
Then I should see "Subject for test message"
|
39
|
+
Then I should see "Content for test message"
|
40
|
+
|
41
|
+
@javascript
|
42
|
+
Scenario: Archiving a message
|
43
|
+
Given There is user with username "stanislaw"
|
44
|
+
And I am logged in as user
|
45
|
+
|
46
|
+
And There is second user with username "miloviza"
|
47
|
+
And There is a message with content "Hello, Miloviza!"
|
48
|
+
And I go to this message page
|
49
|
+
When I click "Archive!"
|
50
|
+
Then I should see "Thread archived"
|
51
|
+
|
52
|
+
@javascript
|
53
|
+
Scenario: Un-archiving a message
|
54
|
+
Given There is user with username "stanislaw"
|
55
|
+
And I am logged in as user
|
56
|
+
|
57
|
+
And There is second user with username "miloviza"
|
58
|
+
And There is a message with content "Hello, Miloviza!"
|
59
|
+
And I go to this message page
|
60
|
+
And I click "Archive!"
|
61
|
+
Then I should see "Unarchive?"
|
62
|
+
|
63
|
+
When I click "Unarchive?"
|
64
|
+
Then I should see "Archive!"
|
65
|
+
|
66
|
+
@javascript
|
67
|
+
Scenario: Answering a message
|
68
|
+
Given There is user with username "stanislaw"
|
69
|
+
And I am logged in as user
|
70
|
+
|
71
|
+
And There is second user with username "miloviza"
|
72
|
+
And There is a message with content "Hello, Miloviza!"
|
73
|
+
And I go to this message page
|
74
|
+
|
75
|
+
And I click "Reply into thread"
|
76
|
+
And I fill in "Message" with "This is the answer to the message"
|
77
|
+
And I press "Reply"
|
78
|
+
Then I should see "This is the answer to the message"
|
79
|
+
Then I should not see "Reply" within "#reply_form"
|