smalruby-editor 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of smalruby-editor might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/javascripts/smalruby.js.coffee.erb +11 -6
- data/app/controllers/application_controller.rb +2 -1
- data/app/controllers/source_codes_controller.rb +5 -1
- data/app/helpers/users_helper.rb +12 -2
- data/app/models/preference.rb +7 -1
- data/app/models/source_code.rb +4 -4
- data/app/views/users/preferences.html.haml +2 -8
- data/config/locales/ja.yml +1 -0
- data/lib/smalruby_editor.rb +15 -7
- data/lib/smalruby_editor/version.rb +1 -1
- data/public/assets/{application-5253d287046c0356ed5bdf79ed312e9d.js → application-277da50b978f4a4292b83a0f2ff521e6.js} +5 -5
- data/public/assets/{application-5253d287046c0356ed5bdf79ed312e9d.js.gz → application-277da50b978f4a4292b83a0f2ff521e6.js.gz} +0 -0
- data/public/assets/{manifest-005ad49acadb6769ff8289e7543e777d.json → manifest-c9964fd12336c02e9a368ae822cc6cbe.json} +1 -1
- data/smalruby-editor.gemspec +1 -1
- data/spec/acceptance/standalone/preference.feature +31 -0
- data/spec/steps/text_editor_steps.rb +7 -0
- data/spec/steps/then_steps.rb +138 -0
- data/spec/steps/{base_steps.rb → when_steps.rb} +23 -152
- metadata +10 -8
@@ -26,39 +26,11 @@ step ':name 画面を表示する' do |name|
|
|
26
26
|
send ':name にアクセスする', name
|
27
27
|
end
|
28
28
|
|
29
|
-
step ':name
|
30
|
-
|
31
|
-
end
|
32
|
-
|
33
|
-
step ':name が表示されていないこと' do |name|
|
34
|
-
expect(page).not_to have_selector(name_to(name))
|
35
|
-
end
|
36
|
-
|
37
|
-
step ':parent に :name が表示されていること' do |parent, name|
|
38
|
-
within(name_to(parent)) do
|
39
|
-
expect(page.all(name_to(name), visible: true)).not_to be_empty
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
step ':parent に :name が表示されていないこと' do |parent, name|
|
44
|
-
within(name_to(parent)) do
|
45
|
-
expect(page.all(name_to(name), visible: true)).to be_empty
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
step 'コンボボックス :name の :option_label を選択していること' do
|
50
|
-
|name, option_label|
|
51
|
-
expect(find(%{select[name="#{name}"] option[selected]}).text)
|
52
|
-
.to eq(option_label)
|
53
|
-
end
|
54
|
-
|
55
|
-
step 'コンボボックス :name の :option_label を選択していないこと' do
|
56
|
-
|name, option_label|
|
57
|
-
expect(find(%{select[name="#{name}"] option[selected]}).text)
|
58
|
-
.not_to eq(option_label)
|
29
|
+
step ':name に :value を指定する' do |name, value|
|
30
|
+
send(':name フィールドに :value を指定する', name, value)
|
59
31
|
end
|
60
32
|
|
61
|
-
step ':name
|
33
|
+
step ':name フィールドに :value を指定する' do |name, value|
|
62
34
|
fill_in(name_to(name, :id), with: value)
|
63
35
|
end
|
64
36
|
|
@@ -70,14 +42,6 @@ step ':name のチェックを外す' do |name|
|
|
70
42
|
uncheck(name)
|
71
43
|
end
|
72
44
|
|
73
|
-
step ':name がチェックされていること' do |name|
|
74
|
-
expect(find(%{input[type="checkbox"][name="#{name}"]})).to be_checked
|
75
|
-
end
|
76
|
-
|
77
|
-
step ':name がチェックされていないこと' do |name|
|
78
|
-
expect(find(%{input[type="checkbox"][name="#{name}"]})).not_to be_checked
|
79
|
-
end
|
80
|
-
|
81
45
|
step ':name にタブを切り替える' do |name|
|
82
46
|
page.execute_script(<<-JS)
|
83
47
|
$('#tabs a[href=\"#{name_to(name)}\"]').click()
|
@@ -118,40 +82,12 @@ step 'ダウンロードが完了するまで待つ' do
|
|
118
82
|
end
|
119
83
|
end
|
120
84
|
|
121
|
-
step ':filename をダウンロードすること' do |filename|
|
122
|
-
step 'ダウンロードが完了するまで待つ'
|
123
|
-
if poltergeist?
|
124
|
-
expect(page.response_headers['Content-Disposition'])
|
125
|
-
.to match(/\Aattachment; filename="#{filename}"\z/)
|
126
|
-
expect(page.response_headers['Content-Type'])
|
127
|
-
.to eq('text/plain; charset=utf-8')
|
128
|
-
elsif selenium?
|
129
|
-
expect(downloads_dir.join(filename)).to be_exist
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
step 'ダウンロードしないこと' do
|
134
|
-
if poltergeist?
|
135
|
-
expect(page.response_headers['Content-Disposition']).to be_nil
|
136
|
-
elsif selenium?
|
137
|
-
expect(downloads_dir).not_to be_exist
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
85
|
step ':name にフォーカスを移す' do |name|
|
142
86
|
page.execute_script(<<-JS)
|
143
87
|
$('#{name_to(name)}').focus()
|
144
88
|
JS
|
145
89
|
end
|
146
90
|
|
147
|
-
step ':name にフォーカスがあること' do |name|
|
148
|
-
# HACK: 現在のPhantomJSでは$(':focus')は動作しない
|
149
|
-
# https://github.com/netzpirat/guard-jasmine/issues/48
|
150
|
-
expect(page.evaluate_script(<<-JS)).to be_true
|
151
|
-
$('#{name_to(name)}').get(0) == document.activeElement
|
152
|
-
JS
|
153
|
-
end
|
154
|
-
|
155
91
|
step ':filename をロードする' do |filename|
|
156
92
|
step '"ロードボタン" にフォーカスを移す'
|
157
93
|
|
@@ -164,6 +100,26 @@ step ':filename をロードする' do |filename|
|
|
164
100
|
attach_file('load-file', path)
|
165
101
|
end
|
166
102
|
|
103
|
+
step 'ページをリロードする' do
|
104
|
+
begin
|
105
|
+
if poltergeist?
|
106
|
+
# HACK: Poltergeistではwindow.onbeforeunload によって表示されたダ
|
107
|
+
# イアログを消せないためタイムアウト時間を1秒にすることで回避し
|
108
|
+
# ている。
|
109
|
+
page.driver.timeout = 2
|
110
|
+
begin
|
111
|
+
step '"エディタ" 画面を表示する'
|
112
|
+
ensure
|
113
|
+
page.driver.timeout = 120
|
114
|
+
end
|
115
|
+
else
|
116
|
+
step '"エディタ" 画面を表示する'
|
117
|
+
end
|
118
|
+
rescue Capybara::Poltergeist::TimeoutError => e
|
119
|
+
Rails.logger.debug("#{e.class.name}: #{e.message}")
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
167
123
|
step 'JavaScriptによるリクエストが終わるまで待つ' do
|
168
124
|
start_time = Time.now
|
169
125
|
until page.evaluate_script('jQuery.isReady && jQuery.active == 0') ||
|
@@ -185,40 +141,6 @@ step 'JavaScriptによる処理が終わるまで待つ' do
|
|
185
141
|
step 'JavaScriptによるアニメーションが終わるまで待つ'
|
186
142
|
end
|
187
143
|
|
188
|
-
step ':name は :value であること' do |name, value|
|
189
|
-
expect(page.evaluate_script(<<-JS)).to eq(value)
|
190
|
-
$('#{name_to(name)}').val()
|
191
|
-
JS
|
192
|
-
end
|
193
|
-
|
194
|
-
step ':name に :message を含むこと' do |name, message|
|
195
|
-
expect(page.find(name_to(name))).to have_content(message)
|
196
|
-
end
|
197
|
-
|
198
|
-
step ':name に :message を含まないこと' do |name, message|
|
199
|
-
expect(page.find(name_to(name))).not_to have_content(message)
|
200
|
-
end
|
201
|
-
|
202
|
-
step 'ページをリロードする' do
|
203
|
-
begin
|
204
|
-
if poltergeist?
|
205
|
-
# HACK: Poltergeistではwindow.onbeforeunload によって表示されたダ
|
206
|
-
# イアログを消せないためタイムアウト時間を1秒にすることで回避し
|
207
|
-
# ている。
|
208
|
-
page.driver.timeout = 2
|
209
|
-
begin
|
210
|
-
step '"エディタ" 画面を表示する'
|
211
|
-
ensure
|
212
|
-
page.driver.timeout = 120
|
213
|
-
end
|
214
|
-
else
|
215
|
-
step '"エディタ" 画面を表示する'
|
216
|
-
end
|
217
|
-
rescue Capybara::Poltergeist::TimeoutError => e
|
218
|
-
Rails.logger.debug("#{e.class.name}: #{e.message}")
|
219
|
-
end
|
220
|
-
end
|
221
|
-
|
222
144
|
step '警告ダイアログの :name ボタンをクリックする' do |name|
|
223
145
|
case name
|
224
146
|
when 'dismiss'
|
@@ -232,30 +154,6 @@ step '確認ダイアログをキャンセルするようにしておく' do
|
|
232
154
|
page.execute_script('window.confirmResult = false') if poltergeist?
|
233
155
|
end
|
234
156
|
|
235
|
-
step '確認メッセージ :message を表示すること' do |message|
|
236
|
-
message.gsub!('\n', "\n")
|
237
|
-
if poltergeist?
|
238
|
-
actual = page.evaluate_script('window.confirmMsg')
|
239
|
-
page.execute_script('window.confirmMsg = null')
|
240
|
-
expect(actual).to eq(message)
|
241
|
-
elsif selenium?
|
242
|
-
expect(page.driver.browser.switch_to.alert.text).to eq(message)
|
243
|
-
page.driver.browser.switch_to.alert.dismiss
|
244
|
-
end
|
245
|
-
end
|
246
|
-
|
247
|
-
step '確認メッセージを表示しないこと' do
|
248
|
-
if poltergeist?
|
249
|
-
actual = page.evaluate_script('window.confirmMsg')
|
250
|
-
page.execute_script('window.confirmMsg = null')
|
251
|
-
expect(actual).to be_nil
|
252
|
-
elsif selenium?
|
253
|
-
expect {
|
254
|
-
page.driver.browser.switch_to.alert
|
255
|
-
}.to raise_exception(Selenium::WebDriver::Error::NoAlertPresentError)
|
256
|
-
end
|
257
|
-
end
|
258
|
-
|
259
157
|
step '実際にはファイルをロードしないようにしておく' do
|
260
158
|
if selenium?
|
261
159
|
page.execute_script("$('#load-button').off('click')")
|
@@ -287,21 +185,6 @@ step 'ホームディレクトリに :program という内容の :filename が
|
|
287
185
|
end
|
288
186
|
end
|
289
187
|
|
290
|
-
step 'ホームディレクトリに :filename が存在すること' do |filename|
|
291
|
-
path = Pathname("~/#{filename}").expand_path
|
292
|
-
expect(path).to be_exist
|
293
|
-
end
|
294
|
-
|
295
|
-
step 'ホームディレクトリの :filename の内容が :program であること' do |filename, program|
|
296
|
-
path = Pathname("~/#{filename}").expand_path
|
297
|
-
expect(path.read).to eq(program)
|
298
|
-
end
|
299
|
-
|
300
|
-
step 'ホームディレクトリの :filename が次の内容であること:' do |filename, program|
|
301
|
-
path = Pathname("~/#{filename}").expand_path
|
302
|
-
expect(path.read).to eq(program)
|
303
|
-
end
|
304
|
-
|
305
188
|
step ':directory ディレクトリに :program という内容の :filename が存在する' do
|
306
189
|
|directory, program, filename|
|
307
190
|
File.open(Pathname("#{directory}/#{filename}").expand_path, 'w') do |f|
|
@@ -309,18 +192,6 @@ step ':directory ディレクトリに :program という内容の :filename が
|
|
309
192
|
end
|
310
193
|
end
|
311
194
|
|
312
|
-
step ':directory ディレクトリに :filename が存在すること' do
|
313
|
-
|directory, filename|
|
314
|
-
path = Pathname("#{directory}/#{filename}").expand_path
|
315
|
-
expect(path).to be_exist
|
316
|
-
end
|
317
|
-
|
318
|
-
step ':directory ディレクトリの :filename の内容が :program であること' do
|
319
|
-
|directory, filename, program|
|
320
|
-
path = Pathname("#{directory}/#{filename}").expand_path
|
321
|
-
expect(path.read).to eq(program)
|
322
|
-
end
|
323
|
-
|
324
195
|
step 'ページを表示する' do
|
325
196
|
# no-op
|
326
197
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smalruby-editor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouji Takao
|
@@ -198,14 +198,14 @@ dependencies:
|
|
198
198
|
requirements:
|
199
199
|
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: 0.1.
|
201
|
+
version: 0.1.8
|
202
202
|
type: :runtime
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: 0.1.
|
208
|
+
version: 0.1.8
|
209
209
|
- !ruby/object:Gem::Dependency
|
210
210
|
name: therubyracer
|
211
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -483,8 +483,8 @@ files:
|
|
483
483
|
- public/422.html
|
484
484
|
- public/500.html
|
485
485
|
- public/apple-touch-icon.png
|
486
|
-
- public/assets/application-
|
487
|
-
- public/assets/application-
|
486
|
+
- public/assets/application-277da50b978f4a4292b83a0f2ff521e6.js
|
487
|
+
- public/assets/application-277da50b978f4a4292b83a0f2ff521e6.js.gz
|
488
488
|
- public/assets/application-f879948b97a781e3d996535a2a0585fa.css
|
489
489
|
- public/assets/application-f879948b97a781e3d996535a2a0585fa.css.gz
|
490
490
|
- public/assets/blockly/msg/js/en_us-d5e1938b2d57c1df954f4411b9165d10.js
|
@@ -507,7 +507,7 @@ files:
|
|
507
507
|
- public/assets/jquery-ui/ui-icons_888888_256x240-ce584ffa171c3ea9a018cf0d7bec65c8.png
|
508
508
|
- public/assets/jquery-ui/ui-icons_cd0a0a_256x240-747e96029e8dedcabc224e5f7d1f2ede.png
|
509
509
|
- public/assets/loading-e77296be32d066d3e29d3bf9803fa417.gif
|
510
|
-
- public/assets/manifest-
|
510
|
+
- public/assets/manifest-c9964fd12336c02e9a368ae822cc6cbe.json
|
511
511
|
- public/assets/msg/en_us-a98cc83805d44f5f675fe6eac2c955ec.js
|
512
512
|
- public/assets/msg/en_us-a98cc83805d44f5f675fe6eac2c955ec.js.gz
|
513
513
|
- public/assets/msg/ja-243b0a55ef1086ef2180af94c422cb5e.js
|
@@ -693,12 +693,13 @@ files:
|
|
693
693
|
- spec/models/concerns/ruby_to_block_spec.rb
|
694
694
|
- spec/models/source_code_spec.rb
|
695
695
|
- spec/spec_helper.rb
|
696
|
-
- spec/steps/base_steps.rb
|
697
696
|
- spec/steps/block_mode_steps.rb
|
698
697
|
- spec/steps/fix_turnip.rb
|
699
698
|
- spec/steps/global_variable.rb
|
700
699
|
- spec/steps/standalone_steps.rb
|
701
700
|
- spec/steps/text_editor_steps.rb
|
701
|
+
- spec/steps/then_steps.rb
|
702
|
+
- spec/steps/when_steps.rb
|
702
703
|
- spec/support/capybara.rb
|
703
704
|
- spec/support/env.rb
|
704
705
|
- spec/support/feature_helper.rb
|
@@ -871,12 +872,13 @@ test_files:
|
|
871
872
|
- spec/models/concerns/ruby_to_block_spec.rb
|
872
873
|
- spec/models/source_code_spec.rb
|
873
874
|
- spec/spec_helper.rb
|
874
|
-
- spec/steps/base_steps.rb
|
875
875
|
- spec/steps/block_mode_steps.rb
|
876
876
|
- spec/steps/fix_turnip.rb
|
877
877
|
- spec/steps/global_variable.rb
|
878
878
|
- spec/steps/standalone_steps.rb
|
879
879
|
- spec/steps/text_editor_steps.rb
|
880
|
+
- spec/steps/then_steps.rb
|
881
|
+
- spec/steps/when_steps.rb
|
880
882
|
- spec/support/capybara.rb
|
881
883
|
- spec/support/env.rb
|
882
884
|
- spec/support/feature_helper.rb
|