SimpliTest 0.0.1

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 (57) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +22 -0
  3. data/SimpliTest.gemspec +42 -0
  4. data/bin/SimpliTest +22 -0
  5. data/lib/SimpliTest.rb +2 -0
  6. data/lib/SimpliTest/cli/main.rb +305 -0
  7. data/lib/SimpliTest/config/configuration.rb +107 -0
  8. data/lib/SimpliTest/config/directory_paths.rb +36 -0
  9. data/lib/SimpliTest/config/environment.rb +67 -0
  10. data/lib/SimpliTest/config/local_environment.rb +20 -0
  11. data/lib/SimpliTest/config/profiles/chrome.rb +18 -0
  12. data/lib/SimpliTest/config/profiles/firefox.rb +14 -0
  13. data/lib/SimpliTest/config/profiles/internet_explorer.rb +12 -0
  14. data/lib/SimpliTest/config/profiles/phantom.rb +9 -0
  15. data/lib/SimpliTest/config/profiles/phantom_debug.rb +12 -0
  16. data/lib/SimpliTest/config/profiles/selenium.rb +13 -0
  17. data/lib/SimpliTest/config/screen_size.rb +25 -0
  18. data/lib/SimpliTest/config/steps.rb +8 -0
  19. data/lib/SimpliTest/helpers/data_validation.rb +60 -0
  20. data/lib/SimpliTest/helpers/file.rb +38 -0
  21. data/lib/SimpliTest/helpers/project_setup.rb +186 -0
  22. data/lib/SimpliTest/helpers/step_helpers/custom_chrome_helpers.rb +14 -0
  23. data/lib/SimpliTest/helpers/step_helpers/custom_date_helpers.rb +64 -0
  24. data/lib/SimpliTest/helpers/step_helpers/custom_form_helpers.rb +66 -0
  25. data/lib/SimpliTest/helpers/step_helpers/custom_phantomjs_helpers.rb +49 -0
  26. data/lib/SimpliTest/helpers/step_helpers/custom_selenium_helpers.rb +41 -0
  27. data/lib/SimpliTest/helpers/step_helpers/html_selectors_helpers.rb +154 -0
  28. data/lib/SimpliTest/helpers/step_helpers/navigation_helpers.rb +196 -0
  29. data/lib/SimpliTest/helpers/step_helpers/tolerance_for_sync_issues.rb +38 -0
  30. data/lib/SimpliTest/helpers/step_helpers/within_helpers.rb +6 -0
  31. data/lib/SimpliTest/helpers/windows_ui.rb +52 -0
  32. data/lib/SimpliTest/steps/debugging_steps.rb +19 -0
  33. data/lib/SimpliTest/steps/form_steps.rb +352 -0
  34. data/lib/SimpliTest/steps/form_verification_steps.rb +190 -0
  35. data/lib/SimpliTest/steps/navigation_steps.rb +47 -0
  36. data/lib/SimpliTest/steps/scoper.rb +42 -0
  37. data/lib/SimpliTest/steps/verification_steps.rb +306 -0
  38. data/lib/SimpliTest/tasks/document.rb +169 -0
  39. data/lib/SimpliTest/tasks/examples.rb +18 -0
  40. data/lib/SimpliTest/tasks/internal_release.rb +39 -0
  41. data/lib/SimpliTest/tasks/testinstall.rb +5 -0
  42. data/lib/SimpliTest/templates/NewSimpliTestProject/Readme.txt +5 -0
  43. data/lib/SimpliTest/templates/NewSimpliTestProject/cucumber.yml +26 -0
  44. data/lib/SimpliTest/templates/NewSimpliTestProject/documentation/step_definitions.html +87 -0
  45. data/lib/SimpliTest/templates/NewSimpliTestProject/features/specifications/RegressionTests/HelloWorld.feature +4 -0
  46. data/lib/SimpliTest/templates/NewSimpliTestProject/features/specifications/SmokeTest/HelloWorld.feature +4 -0
  47. data/lib/SimpliTest/templates/NewSimpliTestProject/features/specifications/accessibilityTests/HelloWorld.feature +4 -0
  48. data/lib/SimpliTest/templates/NewSimpliTestProject/features/support/config/environments.yml +11 -0
  49. data/lib/SimpliTest/templates/NewSimpliTestProject/features/support/config/pages.yml +26 -0
  50. data/lib/SimpliTest/templates/NewSimpliTestProject/features/support/config/selectors.yml +44 -0
  51. data/lib/SimpliTest/templates/NewSimpliTestProject/features/support/config/settings.yml +26 -0
  52. data/lib/SimpliTest/templates/NewSimpliTestProject/features/support/env.rb +33 -0
  53. data/lib/SimpliTest/templates/NewSimpliTestProject/license.txt +30 -0
  54. data/lib/SimpliTest/templates/document/css/style.css +28 -0
  55. data/lib/SimpliTest/templates/document/index.html +60 -0
  56. data/lib/version.rb +3 -0
  57. metadata +395 -0
@@ -0,0 +1,36 @@
1
+ require 'yaml'
2
+ require 'pathname'
3
+ require 'SimpliTest/helpers/project_setup'
4
+ # exports instance variables for various directories of interest in the gem and the satelite projects
5
+ module SimpliTest
6
+ extend ProjectSetupHelpers
7
+ @config_dir = File.dirname(__FILE__)
8
+ @SimpliTest_dir = Pathname.new( @config_dir).parent.to_s
9
+ @helpers_dir = File.join(@SimpliTest_dir, 'helpers')
10
+ @steps_dir = File.join(@SimpliTest_dir, 'steps')
11
+ @step_helpers_dir = File.join(@helpers_dir, 'step_helpers')
12
+ @templates_dir = File.join(@SimpliTest_dir, 'templates')
13
+ @lib_dir = Pathname.new(@SimpliTest_dir).parent.to_s
14
+ @tasks_dir = File.join(@SimpliTest_dir, 'tasks')
15
+ @gem_dir = Pathname.new(@lib_dir).parent.to_s
16
+ class << self
17
+ #TODO: Using method missing despite all the reasons not to
18
+ #FIXME: Get rid of this
19
+ def method_missing(meth, *args, &block)
20
+ if match = meth.to_s.match(/^config_(.+)$/)
21
+ config[match[1].to_sym]
22
+ elsif match = meth.to_s.match(/^path_to_(.+)$/)
23
+ instance_variable_get("@#{match[1]}")
24
+ else
25
+ super # You *must* call super if you don't handle the
26
+ # method, otherwise you'll mess up Ruby's method
27
+ # lookup.
28
+ end
29
+ end
30
+
31
+ def respond_to_missing?(method_name, include_private = false)
32
+ method_name.to_s.start_with?('config_') || meth.to_s.start_with?('path_to_') || super
33
+ end
34
+ end
35
+
36
+ end
@@ -0,0 +1,67 @@
1
+ require 'capybara'
2
+ require 'capybara/cucumber'
3
+ require 'capybara/dsl'
4
+ require 'rspec'
5
+ require "nokogiri"
6
+ require 'open-uri'
7
+ require_relative './local_environment'
8
+ require_relative './screen_size'
9
+ require_relative './steps'
10
+ require File.join(SimpliTest.path_to_helpers_dir, 'project_setup')
11
+ RSpec.configure do |config|
12
+ config.include Capybara::DSL
13
+ end
14
+
15
+ Capybara.save_and_open_page_path = File.expand_path(File.join(SimpliTest.config_support_directory,'../../tmp')) if SimpliTest.config[:support_directory]
16
+ Capybara.default_max_wait_time = 2
17
+
18
+ driver = SimpliTest.driver #default is selenium
19
+ profiles_dir = File.join(File.dirname(__FILE__), 'profiles')
20
+ profiles = {
21
+ 'phantomjs' => 'phantom',
22
+ 'phantom_debug' => 'phantom_debug',
23
+ 'chrome' => 'chrome',
24
+ 'selenium' => 'selenium',
25
+ 'ie' => 'internet_explorer',
26
+ 'fire' => 'firefox'
27
+ }
28
+ profile = File.join profiles_dir, profiles[driver]
29
+ require profile
30
+ puts "Loaded Environment"
31
+
32
+
33
+
34
+ #Leave the window open after a test fails if this tag is provided
35
+ After('@leave_the_window_open') do |scenario|
36
+ if scenario.respond_to?(:status) && scenario.status == :failed
37
+ print "Step Failed. Press Return to close browser"
38
+ STDIN.getc
39
+ end
40
+ end
41
+
42
+ Before do |s|
43
+ # if SimpliTest.env_or_setting('JIRA_INTEGRATION_ENABLED') && SimpliTest.env_or_setting('JIRA_URL')
44
+ # $has_jira_info ||= false
45
+ # return $has_jira_info if $has_jira_info
46
+ # $jira = SimpliTest::JiraIntegration.load_project_details
47
+ # $has_jira_info = true
48
+ # end
49
+ end
50
+
51
+ After do |s|
52
+
53
+ #Reuse Browser sessions
54
+ if SimpliTest.config[:settings]['REUSE_BROWSER_SESSIONS']
55
+ Capybara.current_session.instance_variable_set('@touched', !SimpliTest.config[:settings]['REUSE_BROWSER_SESSIONS'])
56
+ else
57
+ Capybara.current_session.instance_variable_set('@touched', true)
58
+ end
59
+
60
+ # Tell Cucumber to quit after this scenario is done - if it failed.
61
+ #Cucumber.wants_to_quit = true if SimpliTest.config[:settings][QUIT_ON_FAIL] && s.failed?
62
+ #zephyr_reporter = SimpliTest::JiraIntegration.new(s)
63
+ #zephyr_reporter.report
64
+ end
65
+
66
+
67
+
@@ -0,0 +1,20 @@
1
+ module SimpliTest
2
+ def self.gems_installed?(list)
3
+ specs = []
4
+ list.each do |gem|
5
+ dep = Gem::Dependency.new(gem)
6
+ specs << !dep.matching_specs.empty?
7
+ end
8
+ specs.uniq == [true]
9
+ end
10
+
11
+ def self.chromedriver_detected?
12
+ installed = `chromedriver --help` rescue false
13
+ installed ? true : false
14
+ end
15
+
16
+ def self.env_or_setting(setting_name)
17
+ ENV[setting_name] || SimpliTest.config_settings[setting_name]
18
+ end
19
+ end
20
+
@@ -0,0 +1,18 @@
1
+ if SimpliTest.chromedriver_detected?
2
+ require 'selenium/webdriver'
3
+ Capybara.register_driver :chrome do |app|
4
+ Capybara::Selenium::Driver.new(app, :browser => :chrome)
5
+ end
6
+
7
+ Before do
8
+ Capybara.current_driver = :chrome
9
+ Capybara.javascript_driver = :chrome
10
+ end
11
+
12
+ World(CustomSeleniumHelpers)
13
+ World(CustomChromeHelpers)
14
+ else
15
+ alert "Could not find ChromeDriver. Please make sure it is installed and try again"
16
+ end
17
+
18
+
@@ -0,0 +1,14 @@
1
+
2
+ Capybara.register_driver :firefox do |app|
3
+ require 'selenium/webdriver'
4
+ profile = Selenium::WebDriver::Firefox::Profile.new
5
+ profile.native_events = true
6
+ Capybara::Selenium::Driver.new(app, :browser => :firefox)
7
+ end
8
+
9
+ Before do
10
+ Capybara.current_driver = :firefox
11
+ SimpliTest.driver = 'firefox'
12
+ end
13
+
14
+ World(CustomSeleniumHelpers)
@@ -0,0 +1,12 @@
1
+
2
+ Capybara.register_driver :internet_explorer do |app|
3
+ require 'selenium/webdriver'
4
+ Capybara::Selenium::Driver.new(app, :browser => :internet_explorer)
5
+ end
6
+
7
+ Before do
8
+ Capybara.current_driver = :internet_explorer
9
+ SimpliTest.driver = 'internet_explorer'
10
+ end
11
+
12
+ World(CustomSeleniumHelpers)
@@ -0,0 +1,9 @@
1
+ require 'capybara/poltergeist'
2
+ Before do
3
+ Capybara.current_driver = :poltergeist
4
+ Capybara.javascript_driver = :poltergeist
5
+ SimpliTest.driver= 'poltergeist'
6
+ end
7
+
8
+ World(CustomPhantomjsHelpers)
9
+
@@ -0,0 +1,12 @@
1
+ require 'capybara/poltergeist'
2
+ Capybara.register_driver :poltergeist_debug do |app|
3
+ Capybara::Poltergeist::Driver.new(app, :inspector => true)
4
+ end
5
+
6
+ Before do
7
+ Capybara.current_driver = :poltergeist_debug
8
+ Capybara.javascript_driver = :poltergeist_debug
9
+ SimpliTest.driver = 'poltergeist'
10
+ end
11
+
12
+ World(CustomPhantomjsHelpers)
@@ -0,0 +1,13 @@
1
+ Capybara.register_driver :selenium do |app|
2
+ require 'selenium/webdriver'
3
+ profile = Selenium::WebDriver::Firefox::Profile.new
4
+ profile.native_events = true
5
+ Capybara::Selenium::Driver.new(app, :browser => :firefox, profile: profile)
6
+ end
7
+
8
+ Before do
9
+ Capybara.current_driver = :selenium
10
+ SimpliTest.driver = 'selenium'
11
+ end
12
+
13
+ World(CustomSeleniumHelpers)
@@ -0,0 +1,25 @@
1
+
2
+ desktop_max_height = SimpliTest.config[:settings]["DESKTOP_MAX_HEIGHT"] || 980
3
+ desktop_max_width = SimpliTest.config[:settings]["DESKTOP_MAX_WIDTH"] || 1045
4
+ mobile_max_height = SimpliTest.config[:settings]["MOBILE_MAX_HEIGHT"] || 868
5
+ mobile_max_width = SimpliTest.config[:settings]["MOBILE_MAX_WIDTH"] || 362
6
+ tablet_max_height= SimpliTest.config[:settings]["TABLET_MAX_HEIGHT"] || 868
7
+ tablet_max_width = SimpliTest.config[:settings]["TABLET_MAX_WIDTH"] || 814
8
+ landscape_max_height = SimpliTest.config[:settings]["LANDSCAPE_MAX_HEIGHT"] || 362
9
+ landscape_max_width = SimpliTest.config[:settings]["LANDSCAPE_MAX_WIDTH"] || 522
10
+
11
+
12
+ case SimpliTest.screen_size
13
+ when "Mobile"
14
+ MAX_HEIGHT = mobile_max_height
15
+ MAX_WIDTH = mobile_max_width
16
+ when "Tablet"
17
+ MAX_HEIGHT = tablet_max_height
18
+ MAX_WIDTH = tablet_max_width
19
+ when "Desktop"
20
+ MAX_HEIGHT = desktop_max_height
21
+ MAX_WIDTH = desktop_max_width
22
+ when "Landscape"
23
+ MAX_HEIGHT = landscape_max_height
24
+ MAX_WIDTH = landscape_max_width
25
+ end
@@ -0,0 +1,8 @@
1
+ require 'uri'
2
+ require 'cgi'
3
+ load_directories = [File.join(SimpliTest.path_to_steps_dir, '*.rb'), File.join(SimpliTest.path_to_step_helpers_dir, '*.rb')]
4
+ load_directories.each do |dir|
5
+ Dir[dir].each {|file| require file }
6
+ end
7
+
8
+
@@ -0,0 +1,60 @@
1
+ require 'json'
2
+ require 'erb'
3
+ require 'ostruct'
4
+ require 'net/http'
5
+ # monkey patching Hash for an intersection method
6
+ class Hash
7
+ def &(other)
8
+ reject { |k, v| !(other.include?(k) && other[k] == v) }
9
+ end
10
+ end
11
+
12
+
13
+ module SimpliTest
14
+ module DataValidationHelpers
15
+ def validate_service_against(db, service_dir, variables)
16
+ require File.join(service_dir, 'mapper')
17
+ #TODO: Horrible hard coding temporarily...will fix later
18
+ SimpliTest.configure( {:support_directory => File.join(@project_path, 'features', 'support')})
19
+ @service_dir = service_dir
20
+ query_results = get_data_from_db(db, variables)
21
+ if defined?(map_service_results)
22
+ service_results = map_service_results(get_data_from_service(variables))
23
+ query_results.each_with_index do |result, index|
24
+ if result & service_results[index] == service_results[index]
25
+ puts "Passed"
26
+ else
27
+ raise "Test Failed for #{service_results[index]}"
28
+ end
29
+ end
30
+ else
31
+ raise "It seems you have not defined a mapper for this service yet!"
32
+ end
33
+ end
34
+
35
+ def get_data_from_db(db, variables)
36
+ query = preprocess_template('query.sql', variables)
37
+ db.execute query
38
+ end
39
+
40
+ def get_data_from_service(variables)
41
+ service = YAML.load(preprocess_template('service.yml', variables))
42
+ service_path = service['url']
43
+ uri = service_url_for service_path
44
+ JSON.parse Net::HTTP.get(uri)
45
+ end
46
+
47
+ def preprocess_template(file, variables)
48
+ template = File.read(File.join(@service_dir, file))
49
+ ERB.new(template).result(OpenStruct.new(variables).instance_eval { binding })
50
+ end
51
+
52
+ def service_url_for(path)
53
+ uri = URI.parse(path)
54
+ service_host = SimpliTest.config[:environments][SimpliTest.config_environment + "_Services"]
55
+ service_host = SimpliTest.config[:environments][SimpliTest.config_environment] unless service_host
56
+ uri.absolute? ? uri : URI.parse(service_host + path)
57
+ end
58
+
59
+ end
60
+ end
@@ -0,0 +1,38 @@
1
+ module FileHelpers
2
+ require 'fileutils'
3
+
4
+ def make_directory(dirname)
5
+ FileUtils.mkdir_p(dirname)
6
+ end
7
+
8
+ def copy_file(source, target)
9
+ FileUtils.cp(source, target)
10
+ end
11
+
12
+ def copy_folder(source, target)
13
+ FileUtils.copy_entry(source, target)
14
+ end
15
+
16
+ def make_subdirectories_in(directory, *subdirectories)
17
+ subdirectories.each do |subdir|
18
+ FileUtils.mkdir_p(File.join(directory, subdir))
19
+ end
20
+ end
21
+
22
+ def template_path_to(*args)
23
+ relative_path = args.join(File::Separator)
24
+ File.join(SimpliTest.path_to_templates_dir, relative_path)
25
+ end
26
+
27
+ def copy_file_with_replacement_args(template_name, target_location, args={})
28
+ file = File.open(template_path_to(template_name))
29
+ content = file.read
30
+ target_location = File.join(@pwd, template_name) unless target_location
31
+ args.each do |key, value|
32
+ content = content.gsub(/#{key}/,value )
33
+ end
34
+ File.open(target_location, 'w') { |f| f.write(content) }
35
+ end
36
+
37
+
38
+ end
@@ -0,0 +1,186 @@
1
+ module ProjectSetupHelpers
2
+
3
+ #*****************************REQUIRES/INCLUDE/EXTEND******************************************
4
+ require 'rbconfig'
5
+ require File.join(File.dirname(__FILE__), 'file.rb')
6
+ require File.join(File.dirname(__FILE__), 'windows_ui.rb')
7
+
8
+ def self.included klass #always include FileHelpers/WindowsUIHelpers with this module
9
+ klass.class_eval do
10
+ include FileHelpers
11
+ include WindowsUIHelpers
12
+ end
13
+ end
14
+
15
+ def self.extended klass #always extend FileHelpers/WindowsUIHelpers with this module
16
+ klass.class_eval do
17
+ extend FileHelpers
18
+ extend WindowsUIHelpers
19
+ end
20
+ end
21
+
22
+ #**********************************PLATFORM****************************************************
23
+
24
+ def windows?
25
+ @windows = RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
26
+ end
27
+
28
+ #**********************************PROJECT******************************************************
29
+
30
+
31
+ #TODO: Need a massive fix...some of this stuff isn't even right...
32
+ #We shouldnt just be taking the last features directory in path...this could be a big problem
33
+ def project_path_for(directory)
34
+ project_not_found unless project_exists_in?(directory)
35
+ @project_path = directory if @features_sub_dir_exists
36
+ @project_path = File.expand_path('..', directory) if @is_in_the_same_dir_as_features
37
+ @project_path = last_features_dir_in_path if (@feature_files_exist || @index_of_features_dir_in_path)
38
+ if @project_path
39
+ return @project_path
40
+ else
41
+ project_not_found
42
+ end
43
+ end
44
+
45
+ def project_exists_in?(directory)
46
+ # see if current_dir == features
47
+ # see if current_dir.sub_dir.include?(features)
48
+ # see if parent_dir == features
49
+ # see if parent_dir == features/support features/specifications
50
+ # see if parent_dir == features/support/config
51
+ # see if parent_dir == features/support/config/selectors.yml
52
+ # see if sibling_dir == features example: project/documentation and project/features
53
+ @directory ||= directory
54
+ features_sub_dir_exists_in? ||
55
+ is_in_the_same_dir_as_features? ||
56
+ feature_files_exist_in? ||
57
+ is_a_nested_subdirectory_of_features?
58
+ end
59
+
60
+
61
+
62
+ def project_not_found
63
+ alert "Could not find the project. Try running this from the main project directory that has the features directory in it"
64
+ raise "Project Not Found Error"
65
+ end
66
+
67
+ def features_sub_dir_exists_in?(directory=@directory)
68
+ @features_sub_dir_exists = has_sub_dir?(directory, 'features')
69
+ end
70
+
71
+ def has_sub_dir?(dir, sub_dir)
72
+ file = File.join(dir, sub_dir)
73
+ File.directory? file
74
+ end
75
+
76
+ def feature_files_exist_in?(dir=@directory)
77
+ @feature_files_exist = Dir[File.join(dir, '*.feature')].any?
78
+ end
79
+
80
+ def is_a_nested_subdirectory_of_features?(directory=@directory)
81
+ @index_of_features_dir_in_path = directories_in_path(directory).rindex('features')
82
+ end
83
+
84
+ def last_features_dir_in_path(directory=@directory)
85
+ directories = directories_in_path(directory)
86
+ index = @index_of_features_dir_in_path || is_a_nested_subdirectory_of_features?(directory)
87
+ File.expand_path directories[0,index].join(File::SEPARATOR)
88
+ end
89
+
90
+ def directories_in_path(directory=@directory)
91
+ @directories_in_path = directory.split(File::SEPARATOR)
92
+ end
93
+
94
+ def feature_dir_for(dir=@directory)
95
+ index = is_a_nested_subdirectory_of_features?(dir)
96
+ raise "Invalid Project. It seems your feature is not part of a proper project" unless index
97
+ directories_in_path(dir)[0,index].join(File::SEPARATOR)
98
+ end
99
+
100
+ def is_in_the_same_dir_as_features?(directory=@directory)
101
+ parent = File.expand_path('..', directory)
102
+ @is_in_the_same_dir_as_features = features_sub_dir_exists_in?(parent)
103
+ end
104
+
105
+ #*****************************USER ALERTS/CONFIRMATION************************************************
106
+
107
+ def alert(message)
108
+ windows? ? user_informed_via_prompt?(message) : puts(message)
109
+ end
110
+
111
+ def user_consents?
112
+ question = initialization_message + "\nThis will create new files and folders in the current directory. \nWould you still like to proceed?(Y/n)"
113
+ windows? ? user_consents_via_prompt?(question) : user_consents_via_console?(question)
114
+ end
115
+
116
+ def user_consents_via_console?(question)
117
+ STDOUT.puts question
118
+ response = STDIN.gets.strip
119
+ %w[y yes].include?(response.downcase)
120
+ end
121
+
122
+
123
+ #*****************************TEMPLATES****************************************************
124
+
125
+ def get_templates_from(*directories)
126
+ templates = []
127
+ directories.each do |dir|
128
+ templates << templates_in(dir)
129
+ end
130
+ templates = templates.flatten
131
+ templates = templates.select { |f| File.file?(f) } #only select files, ignore directories
132
+ templates
133
+ end
134
+
135
+
136
+ def relative_path_for(template)
137
+ path = template.gsub("#{@templates_dir}/features", '')
138
+ path = File.join(@features_dir, path)
139
+ path = File.join(Pathname.new(File.expand_path(@features_dir)).parent.to_s, 'cucumber.yml') if template =~ /cucumber.yml/
140
+ path
141
+ end
142
+
143
+ def templates_in( directory)
144
+ Dir.glob(File.join(@templates_dir, directory, '**/*'))
145
+ end
146
+
147
+
148
+ #********************************MESSAGES*************************************************
149
+
150
+
151
+ def directory_exists_message
152
+ %Q{ You already have a features directory!!
153
+ Your features directory may contain settings, configuration, test cases and code that you will lose if you choose to delete this directory.
154
+ If you are sure you need a fresh start, please delete the features directory and re run this command.
155
+ Don't forget to backup any files you might need in the future before you delete the features directory."}
156
+ end
157
+
158
+ def initialization_message
159
+ "Initializing a new SimpliTest Project in #{Dir.pwd} \n"
160
+ end
161
+
162
+ def abort_message
163
+ "No modifications were made. SimpliTest Project initialization has been aborted"
164
+ end
165
+
166
+ def problem_creating_directories_message
167
+ "There was a problem creating a file or directory required for the new SimpliTest project. This is most likely a file permissions issue. Try running this command as an administrator"
168
+ end
169
+
170
+ def success_message
171
+ "You have successfully initialized a new SimpliTest project!! See sample files in the features directory"
172
+ end
173
+
174
+ def npp_plugin_generated_message
175
+ "A gherkin.xml file has been placed in the current directory.\n" +
176
+ "Now, within Notepad++ open the User Defined dialogue from the View menu.\n" +
177
+ "Click on import and browse to the generated gherkin.xml file.\n" +
178
+ "If you open a .feature file from Notepad++ now, it should now have some color coding."
179
+ end
180
+
181
+ def framework_correctly_installed_message
182
+ "Version: #{SimpliTest::VERSION} is correctly installed! Please read the documentation to get started"
183
+ end
184
+
185
+ end
186
+