redcar-dev 0.12.17dev → 0.12.18dev
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +4 -2
- data/README.md +5 -41
- data/Rakefile +3 -35
- data/lib/redcar.rb +19 -17
- data/lib/redcar/runner.rb +1 -7
- data/lib/redcar_quick_start.rb +5 -5
- data/plugins/application/features/main_menu.feature +1 -1
- data/plugins/application/features/step_definitions/command_steps.rb +8 -7
- data/plugins/application/features/step_definitions/filter_list_dialog_steps.rb +25 -10
- data/plugins/application/features/step_definitions/key_steps.rb +6 -4
- data/plugins/application/features/step_definitions/menu_steps.rb +27 -26
- data/plugins/application/features/step_definitions/speedbar_steps.rb +28 -16
- data/plugins/application/features/step_definitions/tree_steps.rb +88 -64
- data/plugins/application/features/step_definitions/window_steps.rb +14 -10
- data/plugins/application/features/support/env.rb +85 -83
- data/plugins/application/spec/application/application_spec.rb +1 -1
- data/plugins/application/spec/application/clipboard_spec.rb +1 -1
- data/plugins/application/spec/application/command/executor_spec.rb +1 -1
- data/plugins/application/spec/application/command/history_spec.rb +1 -1
- data/plugins/application/spec/application/command_spec.rb +1 -1
- data/plugins/application/spec/application/keymap/builder_spec.rb +1 -1
- data/plugins/application/spec/application/menu/builder_spec.rb +1 -1
- data/plugins/application/spec/application/menu/menu_item_spec.rb +1 -1
- data/plugins/application/spec/application/menu_spec.rb +1 -1
- data/plugins/application/spec/application/navigation_history_spec.rb +2 -0
- data/plugins/application/spec/application/notebook_spec.rb +1 -1
- data/plugins/application/spec/application/sensitive_spec.rb +1 -1
- data/plugins/application/spec/application/speedbar_spec.rb +1 -1
- data/plugins/application/spec/application/treebook_spec.rb +1 -1
- data/plugins/application/spec/application/window_spec.rb +1 -1
- data/plugins/application/spec/spec_helper.rb +4 -6
- data/plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb +1 -1
- data/plugins/application_swt/lib/application_swt/gradient.rb +15 -5
- data/plugins/application_swt/lib/application_swt/window.rb +1 -1
- data/plugins/application_swt/spec/application_swt/gradient_spec.rb +13 -14
- data/plugins/application_swt/spec/application_swt/menu/binding_translator_spec.rb +1 -1
- data/plugins/application_swt/spec/application_swt/menu_spec.rb +1 -1
- data/plugins/application_swt/spec/spec_helper.rb +1 -19
- data/plugins/auto_completer/features/auto_complete.feature +7 -7
- data/plugins/auto_completer/features/step_definitions/auto_complete_steps.rb +3 -1
- data/plugins/auto_completer/features/step_definitions/dependency_steps.rb +0 -0
- data/plugins/auto_indenter/features/java_style_indentation.feature +5 -3
- data/plugins/auto_indenter/features/ruby_style_indentation.feature +13 -13
- data/plugins/auto_indenter/features/step_definitions/indentation_steps.rb +3 -1
- data/plugins/auto_indenter/spec/auto_indenter/analyzer_spec.rb +1 -1
- data/plugins/auto_indenter/spec/spec_helper.rb +1 -5
- data/plugins/auto_pairer/features/auto_pairer.feature +1 -1
- data/plugins/comment/features/line_comment.feature +31 -26
- data/plugins/comment/features/selection_comment.feature +1 -1
- data/plugins/comment/features/step_definitions/comment_steps.rb +6 -2
- data/plugins/comment/vendor/comment_lib.json +2 -0
- data/plugins/core/lib/core.rb +26 -0
- data/plugins/core/spec/core/base_storage_spec.rb +1 -1
- data/plugins/core/spec/core/gui_spec.rb +1 -1
- data/plugins/core/spec/core/observable_spec.rb +2 -1
- data/plugins/core/spec/core/persistent_cache_spec.rb +1 -1
- data/plugins/core/spec/core/shared_storage_spec.rb +1 -1
- data/plugins/core/spec/core/storage_spec.rb +1 -1
- data/plugins/core/spec/core/task_queue_spec.rb +1 -3
- data/plugins/core/spec/spec_helper.rb +1 -4
- data/plugins/declarations/spec/declarations/file_spec.rb +1 -1
- data/plugins/declarations/spec/spec_helper.rb +1 -5
- data/plugins/document_search/features/find.feature +39 -39
- data/plugins/document_search/features/step_definitions/find_steps.rb +6 -2
- data/plugins/edit_view/features/align_assignment.feature +6 -82
- data/plugins/edit_view/features/case_change.feature +22 -22
- data/plugins/edit_view/features/cursor_navigation.feature +2 -2
- data/plugins/edit_view/features/cut_and_paste.feature +9 -9
- data/plugins/edit_view/features/indentation_commands.feature +8 -8
- data/plugins/edit_view/features/line_delimiter.feature +7 -7
- data/plugins/edit_view/features/multiple_windows.feature +48 -48
- data/plugins/edit_view/features/step_definitions/dependency_steps.rb +0 -0
- data/plugins/edit_view/features/step_definitions/editing_steps.rb +237 -127
- data/plugins/edit_view/features/step_definitions/grammar_steps.rb +5 -1
- data/plugins/edit_view/features/step_definitions/notebook_steps.rb +38 -24
- data/plugins/edit_view/features/step_definitions/tab_steps.rb +83 -45
- data/plugins/edit_view/features/step_definitions/window_steps.rb +75 -54
- data/plugins/edit_view/features/support/env.rb +4 -23
- data/plugins/edit_view/lib/edit_view/commands/align_assignment_command.rb +29 -30
- data/plugins/edit_view/lib/edit_view/document.rb +23 -0
- data/plugins/edit_view/spec/edit_view/commands/align_assignment_command_spec.rb +83 -0
- data/plugins/edit_view/spec/edit_view/document/indentation_spec.rb +1 -1
- data/plugins/edit_view/spec/edit_view/document_spec.rb +1 -1
- data/plugins/edit_view/spec/spec_helper.rb +1 -4
- data/plugins/edit_view_swt/spec/edit_view_swt/word_movement_spec.rb +1 -1
- data/plugins/edit_view_swt/spec/spec_helper.rb +1 -4
- data/plugins/html_view/features/fixtures/sample.html +1 -1
- data/plugins/html_view/features/step_definitions/html_view_steps.rb +40 -39
- data/plugins/java/features/syntax_check_java.feature +18 -16
- data/plugins/line_tools/features/step_definitions/line_tools_steps.rb +18 -6
- data/plugins/macros/features/block_selection_in_macros.feature +47 -47
- data/plugins/macros/features/step_definitions/macro_steps.rb +9 -3
- data/plugins/macros/features/step_definitions/prediction_steps.rb +6 -2
- data/plugins/macros/plugin.rb +2 -1
- data/plugins/macros/spec/macros/predictive/sequence_finder_spec.rb +1 -1
- data/plugins/macros/spec/spec_helper.rb +1 -6
- data/plugins/outline_view/features/outline_view.feature +5 -5
- data/plugins/outline_view/features/step_definitions/outline_steps.rb +29 -17
- data/plugins/plugin_manager_ui/lib/plugin_manager_ui.rb +1 -1
- data/plugins/project/features/close_directory_tree.feature +0 -12
- data/plugins/project/features/open_directory_tree.feature +1 -2
- data/plugins/project/features/step_definitions/directory_steps.rb +13 -5
- data/plugins/project/features/step_definitions/file_steps.rb +23 -9
- data/plugins/project/features/step_definitions/find_file_steps.rb +6 -2
- data/plugins/project/features/step_definitions/project_tree_steps.rb +6 -2
- data/plugins/project/features/watch_for_modified_files.feature +1 -1
- data/plugins/project/spec/project/adapters/remote_protocols/ftp_spec.rb +1 -1
- data/plugins/project/spec/project/adapters/remote_protocols/sftp_spec.rb +1 -1
- data/plugins/project/spec/project/adapters/remote_spec.rb +1 -1
- data/plugins/project/spec/project/dir_mirror_spec.rb +1 -1
- data/plugins/project/spec/project/file_list_spec.rb +1 -1
- data/plugins/project/spec/project/file_mirror_spec.rb +2 -1
- data/plugins/project/spec/spec_helper.rb +1 -4
- data/plugins/project_search/spec/project_search/binary_data_detector_spec.rb +1 -1
- data/plugins/project_search/spec/project_search/word_search_spec.rb +1 -1
- data/plugins/project_search/spec/spec_helper.rb +1 -4
- data/plugins/{application → redcar}/features/navigation_history.feature +8 -8
- data/plugins/redcar/features/step_definitions/font_steps.rb +9 -5
- data/plugins/redcar/redcar.rb +0 -26
- data/plugins/repl/features/step_definitions/repl_steps.rb +15 -5
- data/plugins/repl/plugin.rb +1 -1
- data/plugins/repl/spec/repl/repl_mirror_spec.rb +1 -1
- data/plugins/repl/spec/spec_helper.rb +1 -4
- data/plugins/ruby/spec/ruby/repl_mirror_spec.rb +1 -1
- data/plugins/ruby/spec/spec_helper.rb +1 -5
- data/plugins/runnables/features/parameter_input.feature +43 -43
- data/plugins/runnables/features/step_definitions/runnable_steps.rb +9 -3
- data/plugins/runnables/plugin.rb +2 -2
- data/plugins/runnables/spec/runnables/output_processor_spec.rb +1 -1
- data/plugins/runnables/spec/spec_helper.rb +1 -5
- data/plugins/scm_svn/features/add_and_commit.feature +1 -0
- data/plugins/scm_svn/features/checkout.feature +1 -0
- data/plugins/scm_svn/features/edit_and_index.feature +1 -0
- data/plugins/scm_svn/features/ignore_files.feature +1 -0
- data/plugins/scm_svn/features/merge.feature +1 -0
- data/plugins/scm_svn/features/resolve_conflict.feature +1 -0
- data/plugins/scm_svn/features/revert_and_delete.feature +1 -0
- data/plugins/scm_svn/features/step_definitions/branch_and_merge_steps.rb +14 -9
- data/plugins/scm_svn/features/support/env.rb +4 -4
- data/plugins/scm_svn/features/switch_branches.feature +1 -0
- data/plugins/scm_svn/features/update.feature +1 -0
- data/plugins/strip_trailing_spaces/features/strip_trailing_spaces.feature +4 -4
- data/plugins/test_runner/plugin.rb +3 -1
- data/plugins/test_runner/spec/run_test_command_spec.rb +58 -50
- data/plugins/test_runner/spec/spec_helper.rb +1 -5
- data/plugins/textmate/features/step_definitions/tree_steps.rb +2 -0
- data/plugins/todo_list/features/todo_list.feature +1 -1
- data/plugins/todo_list/spec/spec_helper.rb +1 -4
- data/plugins/todo_list/spec/todo_list/file_parser_spec.rb +1 -1
- data/plugins/tree_view_swt/lib/tree_view_swt.rb +2 -1
- data/plugins/web_bookmarks/features/step_definitions/web_steps.rb +1 -1
- metadata +48 -48
- data/lib/redcar/installer.rb +0 -178
- data/plugins/key_bindings/spec/spec_helper.rb +0 -5
- data/plugins/scm/spec/spec_helper.rb +0 -5
@@ -1,4 +1,8 @@
|
|
1
|
+
|
1
2
|
When /^I switch the language to (.*)$/ do |language|
|
2
|
-
|
3
|
+
puts "this should use menus rather than setting it directly"
|
4
|
+
Swt.sync_exec do
|
5
|
+
Redcar.app.focussed_window.focussed_notebook.focussed_tab.edit_view.grammar = language
|
6
|
+
end
|
3
7
|
end
|
4
8
|
|
@@ -1,13 +1,13 @@
|
|
1
1
|
|
2
2
|
module NotebookSwtHelper
|
3
|
-
def notebook_sash
|
3
|
+
def notebook_sash(shell=active_shell)
|
4
4
|
Redcar.app.show_toolbar = false
|
5
5
|
Redcar.app.refresh_toolbar!
|
6
|
-
|
6
|
+
shell.children.to_a[2].children.to_a[0]
|
7
7
|
end
|
8
8
|
|
9
|
-
def ctab_folders
|
10
|
-
notebook_sash.children.to_a.select do |c|
|
9
|
+
def ctab_folders(shell=active_shell)
|
10
|
+
notebook_sash(shell).children.to_a.select do |c|
|
11
11
|
c.class == Java::OrgEclipseSwtCustom::CTabFolder
|
12
12
|
end
|
13
13
|
end
|
@@ -16,44 +16,58 @@ end
|
|
16
16
|
World(NotebookSwtHelper)
|
17
17
|
|
18
18
|
When /^I make a new notebook$/ do
|
19
|
-
|
19
|
+
Swt.sync_exec do
|
20
|
+
Redcar::Application::OpenNewNotebookCommand.new.run
|
21
|
+
end
|
20
22
|
end
|
21
23
|
|
22
24
|
When /^I move the tab to the other notebook$/ do
|
23
|
-
|
25
|
+
Swt.sync_exec do
|
26
|
+
Redcar::Application::MoveTabToOtherNotebookCommand.new.run
|
27
|
+
end
|
24
28
|
end
|
25
29
|
|
26
30
|
When /^I close the current notebook$/ do
|
27
|
-
|
31
|
+
Swt.sync_exec do
|
32
|
+
Redcar::Application::CloseNotebookCommand.new.run
|
33
|
+
end
|
28
34
|
end
|
29
35
|
|
30
36
|
When /^I switch notebooks$/ do
|
31
|
-
|
37
|
+
Swt.sync_exec do
|
38
|
+
Redcar::Application::SwitchNotebookCommand.new.run
|
39
|
+
end
|
32
40
|
end
|
33
41
|
|
34
42
|
Then /^there should be (one|two) notebooks?$/ do |count_str|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
43
|
+
Swt.sync_exec do
|
44
|
+
count = count_str == "one" ? 1 : 2
|
45
|
+
# in the model
|
46
|
+
Redcar.app.windows.first.notebooks.length.should == count
|
47
|
+
|
48
|
+
# in the GUI
|
49
|
+
ctab_folders.length.should == count
|
50
|
+
end
|
41
51
|
end
|
42
52
|
|
43
53
|
|
44
54
|
Then /^notebook (\d) should have (\d) tabs?$/ do |index, tab_count|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
55
|
+
Swt.sync_exec do
|
56
|
+
index = index.to_i - 1
|
57
|
+
# in the model
|
58
|
+
Redcar.app.windows.first.notebooks[index].tabs.length.should == tab_count.to_i
|
59
|
+
|
60
|
+
# in the GUI
|
61
|
+
ctab_folders[index].children.to_a.length.should == tab_count.to_i
|
62
|
+
end
|
51
63
|
end
|
52
64
|
|
53
65
|
Then /^the tab in notebook (\d) should contain "([^\"]*)"$/ do |index, str|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
66
|
+
Swt.sync_exec do
|
67
|
+
index = index.to_i - 1
|
68
|
+
# in the model
|
69
|
+
tab = Redcar.app.windows.first.notebooks[index].focussed_tab
|
70
|
+
tab.edit_view.document.to_s.include?(str).should be_true
|
71
|
+
end
|
58
72
|
end
|
59
73
|
|
@@ -3,51 +3,77 @@ When /^I do nothing$/ do
|
|
3
3
|
end
|
4
4
|
|
5
5
|
Given /^there is an edit tab containing "([^\"]*)"$/ do |contents|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
Swt.sync_exec do
|
7
|
+
tab = Redcar::Top::OpenNewEditTabCommand.new.run
|
8
|
+
contents = eval(contents.inspect.gsub("\\\\", "\\"))
|
9
|
+
cursor_offset = (contents =~ /<c>/)
|
10
|
+
contents = contents.gsub("<c>", "")
|
11
|
+
tab.edit_view.document.text = contents
|
12
|
+
if cursor_offset
|
13
|
+
tab.edit_view.document.cursor_offset = cursor_offset
|
14
|
+
end
|
13
15
|
end
|
14
16
|
end
|
15
17
|
|
16
18
|
When /^I open a new edit tab$/ do
|
17
|
-
|
19
|
+
Swt.bot.menu("File").menu("New").click
|
18
20
|
end
|
19
21
|
|
20
22
|
When /^I open a new edit tab titled "(.*)"$/ do |title|
|
21
|
-
|
22
|
-
|
23
|
+
Swt.sync_exec do
|
24
|
+
tab = Redcar::Top::OpenNewEditTabCommand.new.run
|
25
|
+
tab.title = title
|
26
|
+
end
|
23
27
|
end
|
24
28
|
|
25
29
|
When /^I close the focussed tab$/ do
|
26
|
-
|
30
|
+
Swt.bot.menu("File").menu("Close Tab").click
|
27
31
|
end
|
28
32
|
|
29
33
|
When /^the edit tab updates its contents$/ do
|
30
|
-
|
34
|
+
Swt.sync_exec do
|
35
|
+
implicit_edit_view.check_for_updated_document
|
36
|
+
end
|
31
37
|
end
|
32
38
|
|
33
39
|
When /I switch (up|down) a tab/ do |type|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
40
|
+
Swt.sync_exec do
|
41
|
+
case type
|
42
|
+
when "down"
|
43
|
+
Redcar::Application::SwitchTabDownCommand.new.run
|
44
|
+
when "up"
|
45
|
+
Redcar::Application::SwitchTabUpCommand.new.run
|
46
|
+
end
|
39
47
|
end
|
40
48
|
end
|
41
49
|
|
42
50
|
When /I move (up|down) a tab/ do |type|
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
51
|
+
Swt.sync_exec do
|
52
|
+
case type
|
53
|
+
when "down"
|
54
|
+
Redcar::Application::MoveTabDownCommand.new.run
|
55
|
+
when "up"
|
56
|
+
Redcar::Application::MoveTabUpCommand.new.run
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
module SwtbotHelpers
|
62
|
+
|
63
|
+
def get_tab_folders(shell=active_shell)
|
64
|
+
tab_folders = notebook_sash(shell).children.to_a.select do |c|
|
65
|
+
c.class == Java::OrgEclipseSwtCustom::CTabFolder
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def get_tab_folder
|
70
|
+
get_tab_folders.length.should == 1
|
71
|
+
get_tab_folders.first
|
48
72
|
end
|
49
73
|
end
|
50
74
|
|
75
|
+
World(SwtbotHelpers)
|
76
|
+
|
51
77
|
Then /^there should be (one|\d+) (.*) tabs?$/ do |num, tab_type|
|
52
78
|
if num == "one"
|
53
79
|
num = 1
|
@@ -58,56 +84,68 @@ Then /^there should be (one|\d+) (.*) tabs?$/ do |num, tab_type|
|
|
58
84
|
# in the model
|
59
85
|
tabs = Redcar.app.focussed_window.notebooks.map {|nb| nb.tabs }.flatten
|
60
86
|
tabs.length.should == num
|
61
|
-
|
87
|
+
|
62
88
|
# in the GUI
|
63
|
-
|
64
|
-
|
65
|
-
tab_class = Redcar::EditTab
|
89
|
+
Swt.sync_exec do
|
90
|
+
get_tab_folder.children.to_a.length.should == num
|
66
91
|
end
|
67
|
-
|
68
|
-
tabs = get_tabs
|
69
|
-
tabs.length.should == num
|
70
92
|
end
|
71
93
|
|
72
94
|
Then /^the edit tab should have the focus$/ do
|
73
|
-
|
95
|
+
Swt.sync_exec do
|
96
|
+
implicit_edit_view.controller.mate_text.get_text_widget.is_focus_control?.should be_true
|
97
|
+
end
|
74
98
|
end
|
75
99
|
|
76
100
|
Then /^there should be no open tabs$/ do
|
77
|
-
get_tab_folder.getItems.to_a.length.should == 0
|
101
|
+
Swt.sync_exec { get_tab_folder.getItems.to_a.length.should == 0 }
|
78
102
|
end
|
79
103
|
|
80
104
|
Then /^the tab should be focussed within the notebook$/ do
|
81
|
-
|
82
|
-
|
105
|
+
Swt.sync_exec do
|
106
|
+
tab_folder = get_tab_folder
|
107
|
+
tab_folder.get_selection.should == tab_folder.getItems.to_a.first
|
108
|
+
end
|
83
109
|
end
|
84
110
|
|
85
111
|
Then /^the tab should have the keyboard focus$/ do
|
86
|
-
|
87
|
-
|
112
|
+
Swt.sync_exec do
|
113
|
+
tab = get_tab(get_tab_folder)
|
114
|
+
implicit_edit_view.controller.is_current?.should be_true
|
115
|
+
end
|
88
116
|
end
|
89
117
|
|
90
118
|
Then /^I should (not )?see "(.*)" in the edit tab$/ do |bool, content|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
119
|
+
Swt.sync_exec do
|
120
|
+
content = content.gsub("\\n", "\n")
|
121
|
+
bool = !bool
|
122
|
+
matcher = bool ? be_true : be_false
|
123
|
+
implicit_edit_view.document.to_s.include?(content).should matcher
|
124
|
+
end
|
95
125
|
end
|
96
126
|
|
97
127
|
Then /^my active tab should be "([^"]*)"$/ do |name|
|
98
|
-
|
128
|
+
Swt.sync_exec do
|
129
|
+
focussed_tab.title.should == name
|
130
|
+
end
|
99
131
|
end
|
100
132
|
|
101
133
|
Then /^my active tab should have an "([^"]*)" icon$/ do |arg1|
|
102
|
-
|
134
|
+
Swt.sync_exec do
|
135
|
+
focussed_tab.icon.should == :"#{arg1}"
|
136
|
+
end
|
103
137
|
end
|
104
138
|
|
105
139
|
Then /^the tab should (not )?have annotations$/ do |negated|
|
106
|
-
|
107
|
-
|
140
|
+
Swt.sync_exec do
|
141
|
+
annotations = implicit_edit_view.annotations
|
142
|
+
negated ? (annotations.should be_empty) : (annotations.should_not be_empty)
|
143
|
+
end
|
108
144
|
end
|
109
145
|
|
110
146
|
Then /^the tab should (not )?have an annotation on line (\d+)$/ do |negated, num|
|
111
|
-
|
112
|
-
|
147
|
+
Swt.sync_exec do
|
148
|
+
annotations = implicit_edit_view.annotations(:line => num.to_i)
|
149
|
+
negated ? (annotations.should be_empty) : (annotations.should_not be_empty)
|
150
|
+
end
|
113
151
|
end
|
@@ -1,59 +1,73 @@
|
|
1
1
|
Then /^there should be (no|one|\d+) windows?$/ do |num|
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
2
|
+
Swt.sync_exec do
|
3
|
+
case num
|
4
|
+
when "no"
|
5
|
+
num = 0
|
6
|
+
when "one"
|
7
|
+
num = 1
|
8
|
+
else
|
9
|
+
num = num.to_i
|
10
|
+
end
|
11
|
+
|
12
|
+
# in the model
|
13
|
+
Redcar.app.windows.length.should == num
|
14
|
+
|
15
|
+
# in the gui
|
16
|
+
display = Swt::Widgets::Display.get_current
|
17
|
+
shells = display.get_shells.to_a
|
18
|
+
|
19
|
+
# on OSX there is always an invisible window
|
20
|
+
diff = Redcar.platform == :osx ? 1 : 0
|
21
|
+
|
22
|
+
shells.length.should == num + diff
|
9
23
|
end
|
10
|
-
|
11
|
-
# in the model
|
12
|
-
Redcar.app.windows.length.should == num
|
13
|
-
|
14
|
-
# in the gui
|
15
|
-
display = Swt::Widgets::Display.get_current
|
16
|
-
shells = display.get_shells.to_a
|
17
|
-
|
18
|
-
# on OSX there is always an invisible window
|
19
|
-
diff = Redcar.platform == :osx ? 1 : 0
|
20
|
-
|
21
|
-
shells.length.should == num + diff
|
22
24
|
end
|
23
25
|
|
24
26
|
When /I open a new window(?: with title "(.*)")?/ do |title|
|
25
|
-
|
27
|
+
Swt.sync_exec do
|
28
|
+
Redcar::Application::OpenNewWindowCommand.new(title).run
|
29
|
+
end
|
26
30
|
end
|
27
31
|
|
28
32
|
When /^I maximize the window size$/ do
|
29
|
-
|
33
|
+
Swt.sync_exec do
|
34
|
+
Redcar.app.focussed_window.controller.shell.maximized = true
|
35
|
+
end
|
30
36
|
end
|
31
37
|
|
32
38
|
When /^I restore the window size$/ do
|
33
|
-
|
39
|
+
Swt.sync_exec do
|
40
|
+
Redcar.app.focussed_window.controller.shell.maximized = false
|
41
|
+
end
|
34
42
|
end
|
35
43
|
|
36
44
|
When /I close the window(?: "(.*)")?( with a command| through the gui)?/ do |title, how|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
45
|
+
Swt.sync_exec do
|
46
|
+
if title
|
47
|
+
win = Redcar.app.windows.detect{|win| win.title == title }
|
48
|
+
else
|
49
|
+
win = Redcar.app.focussed_window
|
50
|
+
end
|
51
|
+
if how =~ /command/
|
52
|
+
Redcar::Application::CloseWindowCommand.new(win).run
|
53
|
+
else
|
54
|
+
FakeEvent.new(Swt::SWT::Close, win.controller.shell)
|
55
|
+
end
|
46
56
|
end
|
47
57
|
end
|
48
58
|
|
49
59
|
When /^I focus the window "([^\"]*)" with a command$/ do |title|
|
50
|
-
|
51
|
-
|
60
|
+
Swt.sync_exec do
|
61
|
+
win = Redcar.app.windows.detect{|win| win.title == title }
|
62
|
+
win.focus
|
63
|
+
end
|
52
64
|
end
|
53
65
|
|
54
66
|
When /^I focus the window "([^\"]*)" through the gui$/ do |title|
|
55
|
-
|
56
|
-
|
67
|
+
Swt.sync_exec do
|
68
|
+
win = Redcar.app.windows.detect{|win| win.title == title }
|
69
|
+
FakeEvent.new(Swt::SWT::Activate, win.controller.shell)
|
70
|
+
end
|
57
71
|
end
|
58
72
|
|
59
73
|
When /^I focus the working directory window through the gui$/ do
|
@@ -61,26 +75,33 @@ When /^I focus the working directory window through the gui$/ do
|
|
61
75
|
end
|
62
76
|
|
63
77
|
Then /^the window should be titled "([^\"]*)"$/ do |title|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
78
|
+
Swt.sync_exec do
|
79
|
+
windows = Redcar.app.windows
|
80
|
+
windows.length.should == 1
|
81
|
+
|
82
|
+
# in the model
|
83
|
+
windows.first.title.should == title
|
84
|
+
# in the gui
|
85
|
+
windows.first.controller.shell.text.should == title
|
86
|
+
end
|
71
87
|
end
|
72
88
|
|
73
89
|
Then /the window "(.*)" should have (\d+) tabs?/ do |win_title, tab_num|
|
74
|
-
|
75
|
-
|
76
|
-
# in the model
|
77
|
-
Redcar.app.windows.detect{|win| win.title == win_title }.notebooks.map{|nb| nb.tabs}.flatten.length.should == tab_num
|
78
|
-
|
79
|
-
# in the GUI
|
80
|
-
display = Swt::Widgets::Display.get_current
|
81
|
-
shells = display.get_shells.to_a
|
82
|
-
shell = shells.detect {|s| s.text == win_title }
|
83
|
-
items = get_tab_folders(shell).map{|f| f.getItems.to_a}.flatten
|
90
|
+
Swt.sync_exec do
|
91
|
+
tab_num = tab_num.to_i
|
84
92
|
|
85
|
-
|
86
|
-
|
93
|
+
# in the model
|
94
|
+
Redcar.app.windows.detect{|win| win.title == win_title }.notebooks.map{|nb| nb.tabs}.flatten.length.should == tab_num
|
95
|
+
|
96
|
+
# in the GUI
|
97
|
+
display = Swt::Widgets::Display.get_current
|
98
|
+
shells = display.get_shells.to_a
|
99
|
+
shell = shells.detect {|s| s.text == win_title }
|
100
|
+
items = get_tab_folders(shell).map{|f| f.getItems.to_a}.flatten
|
101
|
+
|
102
|
+
items.map {|i| model_tab_for_item(i)}.length.should == tab_num
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
|
107
|
+
|