experience 0.0.0 → 0.0.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.
- data/.idea/inspectionProfiles/Project_Default.xml +8 -0
- data/.idea/inspectionProfiles/profiles_settings.xml +7 -0
- data/.idea/runConfigurations/test__experience.xml +24 -0
- data/.travis.yml +7 -0
- data/Gemfile +5 -0
- data/README.md +1 -0
- data/Rakefile +32 -0
- data/cucumber.yml +1 -0
- data/experience.gemspec +26 -19
- data/features/content.feature +10 -0
- data/features/step_definitions/content_steps.rb +16 -0
- data/features/support/env.rb +4 -0
- data/features/support/stub_data.yml +3 -0
- data/features/support/stub_platform.rb +14 -0
- data/lib/experience.rb +25 -1
- data/lib/experience/features.rb +3 -0
- data/lib/experience/version.rb +3 -0
- data/spec/experience_spec.rb +22 -0
- metadata +68 -11
- checksums.yaml +0 -7
@@ -0,0 +1,8 @@
|
|
1
|
+
<component name="InspectionProjectProfileManager">
|
2
|
+
<profile version="1.0" is_locked="false">
|
3
|
+
<option name="myName" value="Project Default" />
|
4
|
+
<option name="myLocal" value="false" />
|
5
|
+
<inspection_tool class="RubyDefParenthesesInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
6
|
+
<inspection_tool class="RubyQuotedStringsInspection" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
|
7
|
+
</profile>
|
8
|
+
</component>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<component name="ProjectRunConfigurationManager">
|
2
|
+
<configuration default="false" name="test: experience" type="RakeRunConfigurationType" factoryName="Rake">
|
3
|
+
<module name="experience" />
|
4
|
+
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
5
|
+
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$MODULE_DIR$" />
|
6
|
+
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
|
7
|
+
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
|
8
|
+
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
|
9
|
+
<envs />
|
10
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
11
|
+
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
12
|
+
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov" />
|
13
|
+
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
14
|
+
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_NAME" VALUE="test" />
|
15
|
+
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ARGS" VALUE="" />
|
16
|
+
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_ATTACHED_TEST_FRAMEWORKS" VALUE=":test_unit " />
|
17
|
+
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_TRACE" VALUE="false" />
|
18
|
+
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_DRYRUN" VALUE="false" />
|
19
|
+
<RAKE_RUN_CONFIG_SETTINGS_ID NAME="RAKE_TASK_OPTION_PREREQS" VALUE="false" />
|
20
|
+
<RunnerSettings RunnerId="RubyRunner" />
|
21
|
+
<ConfigurationWrapper RunnerId="RubyRunner" />
|
22
|
+
<method />
|
23
|
+
</configuration>
|
24
|
+
</component>
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
CHANGED
data/Rakefile
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bundler'
|
3
|
+
require 'rake'
|
4
|
+
require 'rspec/core/rake_task'
|
5
|
+
require 'cucumber'
|
6
|
+
require 'cucumber/rake/task'
|
7
|
+
require 'experience'
|
8
|
+
require_relative 'features/support/stub_platform'
|
9
|
+
require_relative 'lib/experience/features'
|
10
|
+
|
11
|
+
Bundler::GemHelper.install_tasks
|
12
|
+
|
13
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
14
|
+
spec.ruby_opts = "-I lib:spec"
|
15
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
16
|
+
end
|
17
|
+
task :spec
|
18
|
+
|
19
|
+
|
20
|
+
Cucumber::Rake::Task.new(:acceptance, "Run features") do |t|
|
21
|
+
t.profile = 'acceptance'
|
22
|
+
t.cucumber_opts = "--color #{features_directory}"
|
23
|
+
end
|
24
|
+
|
25
|
+
desc 'Run all specs and cukes'
|
26
|
+
task :test => ['spec', 'features']
|
27
|
+
|
28
|
+
task :lib do
|
29
|
+
$LOAD_PATH.unshift(File.expand_path("lib", File.dirname(__FILE__)))
|
30
|
+
end
|
31
|
+
|
32
|
+
task :default => :test
|
data/cucumber.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
acceptance: --color
|
data/experience.gemspec
CHANGED
@@ -1,21 +1,28 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
s.description = "Test applications for the user experience. "\
|
8
|
-
"This is an implementation of the User Interaction testing pattern."
|
9
|
-
s.authors = ["Dane Andersen"]
|
10
|
-
s.email = ['dane.andersen@gmail.com']
|
11
|
-
s.files = ["lib/hola.rb"]
|
12
|
-
s.homepage = "https://github.com/daneandersen/experience"
|
13
|
-
s.license = 'MIT'
|
1
|
+
# coding: utf-8
|
2
|
+
features = File.expand_path('../features', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(features) unless $LOAD_PATH.include?(features)
|
4
|
+
lib = File.expand_path('../lib', __FILE__)
|
5
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
6
|
+
require 'experience/version'
|
14
7
|
|
15
|
-
|
8
|
+
Gem::Specification.new do |spec|
|
9
|
+
spec.name = "experience"
|
10
|
+
spec.version = Experience::VERSION
|
11
|
+
spec.authors = ["Dane Andersen"]
|
12
|
+
spec.email = ["dane.andersen@gmail.com"]
|
13
|
+
spec.summary = %q{Test the user experience}
|
14
|
+
spec.description = %q{Test applications for the user experience.
|
15
|
+
This is an implementation of the User Interaction testing pattern.}
|
16
|
+
spec.homepage = "https://github.com/daneandersen/experience"
|
17
|
+
spec.license = "MIT"
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
19
|
+
spec.rubyforge_project = "experience"
|
20
|
+
|
21
|
+
spec.files = `git ls-files -z`.split("\x0")
|
22
|
+
spec.test_files = spec.files.grep(%r{^(spec|features)/})
|
23
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
24
|
+
spec.require_paths = ["lib","features"]
|
25
|
+
|
26
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
27
|
+
spec.add_development_dependency "cucumber", "~> 1.3"
|
28
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
Feature: Read content of the application
|
2
|
+
As a User of the Application Under Test
|
3
|
+
I want to read content
|
4
|
+
In order to know what the application is trying to tell me
|
5
|
+
|
6
|
+
@wip
|
7
|
+
Scenario: Single piece of content
|
8
|
+
Given there is content in the application
|
9
|
+
When I read the content
|
10
|
+
Then I will know what it says
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Given(/^there is content in the application$/) do
|
2
|
+
class Tutorial
|
3
|
+
extend Experience
|
4
|
+
content(:headline, :id => 'headline')
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
When(/^I read the content$/) do
|
9
|
+
Tutorial.read do |tutorial|
|
10
|
+
@content = tutorial.headline
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
Then(/^I will know what it says$/) do
|
15
|
+
expect(@content).to eq '"Experience" Models User Interactions'
|
16
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Experience
|
2
|
+
module Stub
|
3
|
+
class Platform
|
4
|
+
|
5
|
+
def self.information
|
6
|
+
@information ||= YAML.load_file File.expand_path('../stub_data.yml', __FILE__,)
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.get_content identifier
|
10
|
+
information.fetch(:content).fetch(identifier.keys.first).fetch(identifier.values.first)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/experience.rb
CHANGED
@@ -1,3 +1,27 @@
|
|
1
1
|
module Experience
|
2
|
-
|
2
|
+
def content name, locator
|
3
|
+
define_singleton_method name do
|
4
|
+
platform.get_content(locator)
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
def read
|
9
|
+
yield(self)
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def platform
|
15
|
+
@platform || DefaultPlatform.default
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class DefaultPlatform
|
20
|
+
def self.register platform
|
21
|
+
@default = platform
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.default
|
25
|
+
@default or fail 'No platform specified. To set a default, call DefaultPlatform.register'
|
26
|
+
end
|
3
27
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'experience'
|
3
|
+
|
4
|
+
describe 'An Experience' do
|
5
|
+
|
6
|
+
before :all do
|
7
|
+
@platform = double('platform')
|
8
|
+
Platform.register_default @platform
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should find content' do
|
12
|
+
expect(@platform).to receive(:get_content).with(:id => 'name').and_return('experience')
|
13
|
+
class Example
|
14
|
+
extend Experience
|
15
|
+
|
16
|
+
content(:name, :id => 'name')
|
17
|
+
end
|
18
|
+
Example.read do |example|
|
19
|
+
expect(example.name).to eq 'experience'
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,49 +1,106 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: experience
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Dane Andersen
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2014-
|
12
|
-
dependencies:
|
13
|
-
|
14
|
-
|
12
|
+
date: 2014-10-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '3.0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '3.0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: cucumber
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '1.3'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.3'
|
46
|
+
description: ! 'Test applications for the user experience.
|
47
|
+
|
48
|
+
This is an implementation of the User Interaction testing pattern.'
|
15
49
|
email:
|
16
50
|
- dane.andersen@gmail.com
|
17
51
|
executables: []
|
18
52
|
extensions: []
|
19
53
|
extra_rdoc_files: []
|
20
54
|
files:
|
55
|
+
- .idea/inspectionProfiles/Project_Default.xml
|
56
|
+
- .idea/inspectionProfiles/profiles_settings.xml
|
57
|
+
- .idea/runConfigurations/test__experience.xml
|
58
|
+
- .travis.yml
|
59
|
+
- Gemfile
|
21
60
|
- README.md
|
61
|
+
- Rakefile
|
62
|
+
- cucumber.yml
|
22
63
|
- experience.gemspec
|
64
|
+
- features/content.feature
|
65
|
+
- features/step_definitions/content_steps.rb
|
66
|
+
- features/support/env.rb
|
67
|
+
- features/support/stub_data.yml
|
68
|
+
- features/support/stub_platform.rb
|
23
69
|
- lib/experience.rb
|
70
|
+
- lib/experience/features.rb
|
71
|
+
- lib/experience/version.rb
|
72
|
+
- spec/experience_spec.rb
|
24
73
|
homepage: https://github.com/daneandersen/experience
|
25
74
|
licenses:
|
26
75
|
- MIT
|
27
|
-
metadata: {}
|
28
76
|
post_install_message:
|
29
77
|
rdoc_options: []
|
30
78
|
require_paths:
|
31
79
|
- lib
|
80
|
+
- features
|
32
81
|
required_ruby_version: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
33
83
|
requirements:
|
34
|
-
- - '>='
|
84
|
+
- - ! '>='
|
35
85
|
- !ruby/object:Gem::Version
|
36
86
|
version: '0'
|
37
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
none: false
|
38
89
|
requirements:
|
39
|
-
- - '>='
|
90
|
+
- - ! '>='
|
40
91
|
- !ruby/object:Gem::Version
|
41
92
|
version: '0'
|
42
93
|
requirements: []
|
43
94
|
rubyforge_project: experience
|
44
|
-
rubygems_version:
|
95
|
+
rubygems_version: 1.8.28
|
45
96
|
signing_key:
|
46
|
-
specification_version:
|
97
|
+
specification_version: 3
|
47
98
|
summary: Test the user experience
|
48
|
-
test_files:
|
99
|
+
test_files:
|
100
|
+
- features/content.feature
|
101
|
+
- features/step_definitions/content_steps.rb
|
102
|
+
- features/support/env.rb
|
103
|
+
- features/support/stub_data.yml
|
104
|
+
- features/support/stub_platform.rb
|
105
|
+
- spec/experience_spec.rb
|
49
106
|
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 1e479cecc36c2dea312fb304f0edbebb778b6672
|
4
|
-
data.tar.gz: 1f6d91ec9253931b807488557119a462b65291e8
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 992ecfad1b6698a1a6abdec805036c92a082cab0c59410f0ac784e31929561d7951f558c13b5bb99d2915af10ec0d5be9c3d63742f7f7b7e77a4c1d7121a7e00
|
7
|
-
data.tar.gz: 0b6fbc5ea50f3f239e7b7407976b44146b4a45ce30d24a6a79eebbc5d75dcb70aa972a84143a2a06d522b321cb29d22524f0474bc826723bbe956ab72abef2ee
|