carrier 0.1.1 → 0.1.2

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.
Files changed (39) hide show
  1. data/Gemfile +11 -7
  2. data/Rakefile +1 -1
  3. data/VERSION +1 -1
  4. data/app/controllers/carrier/messages_controller.rb +7 -2
  5. data/app/views/carrier/messages/_message.html.erb +1 -2
  6. data/app/views/carrier/messages/_reply.html.erb +2 -2
  7. data/app/views/carrier/messages/show.html.erb +0 -3
  8. data/carrier.gemspec +29 -23
  9. data/config/locales/carrier.en.yml +4 -0
  10. data/config/locales/carrier.ru.yml +4 -0
  11. data/lib/carrier/rails/engine.rb +1 -1
  12. data/spec/dummy/app/helpers/application_helper.rb +1 -0
  13. data/spec/dummy/app/views/devise/registrations/new.html.erb +3 -0
  14. data/spec/dummy/app/views/layouts/application.html.erb +1 -1
  15. data/spec/dummy/config/cucumber.yml +8 -0
  16. data/spec/dummy/config/database.yml +2 -2
  17. data/spec/dummy/config/environments/test.rb +2 -0
  18. data/spec/dummy/db/schema.rb +12 -12
  19. data/spec/dummy/factories/message.rb +9 -0
  20. data/spec/dummy/factories/user.rb +13 -0
  21. data/spec/dummy/features/carrier.feature +79 -0
  22. data/spec/dummy/features/step_definitions/debug_steps.rb +15 -0
  23. data/spec/dummy/features/step_definitions/resources_steps.rb +15 -0
  24. data/spec/dummy/features/step_definitions/web_steps.rb +301 -0
  25. data/spec/dummy/features/support/carrier_routes_helper.rb +5 -0
  26. data/spec/dummy/features/support/env.rb +47 -0
  27. data/spec/dummy/features/support/paths.rb +34 -0
  28. data/spec/dummy/features/support/rails_helper.rb +50 -0
  29. data/spec/dummy/features/support/singleton.rb +17 -0
  30. data/spec/dummy/features/support/transaction.rb +30 -0
  31. data/spec/dummy/lib/tasks/cucumber.rake +65 -0
  32. data/spec/dummy/script/cucumber +10 -0
  33. data/spec/dummy_spec_helper.rb +12 -26
  34. metadata +189 -136
  35. data/TODO +0 -1
  36. data/script/rails +0 -6
  37. data/spec/integration/carrier_spec.rb +0 -73
  38. data/test/helper.rb +0 -18
  39. 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, :test do
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 "jeweler", ">= 1.6.4"
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 'capybara'
22
- gem 'factory_girl'
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
@@ -22,7 +22,7 @@ end
22
22
  Jeweler::RubygemsDotOrgTasks.new
23
23
 
24
24
 
25
- require 'rake/rdoctask'
25
+ require 'rdoc/task'
26
26
 
27
27
  Rake::RDocTask.new(:rdoc) do |rdoc|
28
28
  rdoc.rdoc_dir = 'rdoc'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -3,7 +3,13 @@
3
3
  module Carrier
4
4
  class MessagesController < ApplicationController
5
5
 
6
- after_filter :only => [:show] { @message.mark_as_read! :for => current_user }
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
- <%= content_tag :div, :class => "message_collapse", :id => "message-#{message.id}" do %>
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> &rArr; <span class="red"><%= @message.recipients_names %></span></h4>
7
7
  <div class="field">
8
- <%= f.label "Сообщение:" %><br />
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 %>
@@ -21,9 +21,6 @@
21
21
  <div class="message_ma_user">
22
22
  <%= @message.sender_name %>
23
23
  </div>
24
- <div class="message_ma_subj">
25
- <b><%= @message.subject %></b>
26
- </div>
27
24
  <div>
28
25
  <%= simple_format @message.content %>
29
26
  </div>
@@ -5,17 +5,16 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "carrier"
8
- s.version = "0.1.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 = "2011-12-23"
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.11"
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
 
@@ -45,6 +45,10 @@ en:
45
45
  new_subject: "Subject"
46
46
  new_content: "Message"
47
47
  new_send: "Send"
48
+
49
+ reply_send: "Reply"
50
+ reply_content: "Message"
51
+
48
52
  no_messages: "No messages yet"
49
53
  #last: "Last &raquo;"
50
54
  #previous: "&lsaquo; Prev"
@@ -49,6 +49,10 @@ ru:
49
49
  new_subject: "Тема"
50
50
  new_content: "Сообщение"
51
51
  new_send: "Отправить"
52
+
53
+ reply_send: "Ответить"
54
+ reply_content: "Сообщение"
55
+
52
56
  no_messages: "Сообщений нет"
53
57
  #last: "Last &raquo;"
54
58
  #previous: "&lsaquo; Prev"
@@ -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
@@ -1,2 +1,3 @@
1
1
  module ApplicationHelper
2
+ include Carrier::ApplicationHelper
2
3
  end
@@ -6,6 +6,9 @@
6
6
  <p><%= f.label :email %><br />
7
7
  <%= f.email_field :email %></p>
8
8
 
9
+ <p><%= f.label :username %><br />
10
+ <%= f.text_field :username %></p>
11
+
9
12
  <p><%= f.label :password %><br />
10
13
  <%= f.password_field :password %></p>
11
14
 
@@ -11,6 +11,6 @@
11
11
  <%= yield %>
12
12
 
13
13
  <%= link_to 'Carrier', '/carrier' %>
14
- <%= link_to 'Sign out', destroy_user_session_path, :method => :delete %>
14
+ <%= link_to 'Sign out', main_app.destroy_user_session_path, :method => :delete %>
15
15
  </body>
16
16
  </html>
@@ -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: root
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: root
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"
@@ -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\n"
18
- t.string "archived_for", :default => "--- []\n\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\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,9 @@
1
+ FactoryGirl.define do
2
+ factory :message, :class => Carrier::Message do
3
+ sender_user { |su| singleton(:user) }
4
+ recipients { |r| [ singleton(:second_user).id ] }
5
+
6
+ content "content of test message"
7
+ subject "subject of test message"
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ FactoryGirl.define do
2
+ factory :user do
3
+ email 'stanislaw@gmail.com'
4
+ username 'stanislaw'
5
+ password '666666'
6
+ end
7
+
8
+ factory :second_user, :class => User do
9
+ email 'miloviza@gmail.com'
10
+ username 'milovila'
11
+ password '666666'
12
+ end
13
+ end
@@ -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"