calliper 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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/.gitignore +1 -0
- data/.travis.yml +16 -0
- data/LICENSE +20 -0
- data/README.md +11 -0
- data/Rakefile +12 -0
- data/VERSION +1 -0
- data/calliper.gemspec +23 -0
- data/certs/ysbaddaden.pem +21 -0
- data/lib/calliper.rb +17 -0
- data/lib/calliper/config.rb +44 -0
- data/lib/calliper/minitest.rb +11 -0
- data/lib/calliper/page.rb +37 -0
- data/lib/calliper/rack.rb +19 -0
- data/lib/calliper/rails.rb +2 -0
- data/lib/calliper/server.rb +60 -0
- data/lib/calliper/version.rb +10 -0
- data/lib/calliper/webdriver.rb +76 -0
- data/test/sample/application.rb +22 -0
- data/test/sample/config.ru +2 -0
- data/test/sample/public/javascripts/angular.js +20757 -0
- data/test/sample/public/javascripts/application.js +26 -0
- data/test/sample/views/index.erb +27 -0
- data/test/sample_test.rb +48 -0
- data/test/test_helper.rb +24 -0
- metadata +139 -0
- metadata.gz.sig +0 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
function Notification($http) {
|
2
|
+
return {
|
3
|
+
index: function (success, error) {
|
4
|
+
var request = $http.get('/notifications.json');
|
5
|
+
if (success) request.success(success);
|
6
|
+
if (error) request.error(error);
|
7
|
+
return request;
|
8
|
+
}
|
9
|
+
};
|
10
|
+
}
|
11
|
+
|
12
|
+
function NotificationListCtrl($scope, Notification) {
|
13
|
+
$scope.toggleNotifications = function () {
|
14
|
+
if ($scope.notifications) {
|
15
|
+
$scope.notifications = null;
|
16
|
+
} else {
|
17
|
+
Notification.index(function (notifications) {
|
18
|
+
$scope.notifications = notifications;
|
19
|
+
});
|
20
|
+
}
|
21
|
+
};
|
22
|
+
}
|
23
|
+
|
24
|
+
angular.module('sample', [])
|
25
|
+
.service('Notification', Notification)
|
26
|
+
.controller('NotificationListCtrl', NotificationListCtrl);
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en" ng-app="sample">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8"/>
|
5
|
+
<title>Calliper Sample Application</title>
|
6
|
+
<script src="/javascripts/angular.js"></script>
|
7
|
+
<script src="/javascripts/application.js"></script>
|
8
|
+
</head>
|
9
|
+
<body>
|
10
|
+
|
11
|
+
<div ng-controller="NotificationListCtrl">
|
12
|
+
<h1>Notifications:</h1>
|
13
|
+
|
14
|
+
<button class="toggle-notifications" ng-click="toggleNotifications()">
|
15
|
+
Toggle Notifications
|
16
|
+
</button>
|
17
|
+
|
18
|
+
<ul ng-if="notifications" class="notification-list">
|
19
|
+
<li ng-repeat="notification in notifications" class="notification">
|
20
|
+
<span class="notification-id">{{notification.id}}</span>:
|
21
|
+
<span class="notification-message">{{notification.message}}</span>
|
22
|
+
</li>
|
23
|
+
</ul>
|
24
|
+
</div>
|
25
|
+
|
26
|
+
</body>
|
27
|
+
</html>
|
data/test/sample_test.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class NotificationsPage < Calliper::Page
|
4
|
+
def get
|
5
|
+
super "/"
|
6
|
+
end
|
7
|
+
|
8
|
+
def toggle
|
9
|
+
find_element(:css, '.toggle-notifications').click
|
10
|
+
end
|
11
|
+
|
12
|
+
def list
|
13
|
+
find_element(:css, '.notification-list')
|
14
|
+
end
|
15
|
+
|
16
|
+
def notifications
|
17
|
+
list.find_elements(:repeater, 'notification in notifications')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
class NotificationsTest < Minitest::Test
|
22
|
+
def setup
|
23
|
+
@page = NotificationsPage.get
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_toggle_button
|
27
|
+
refute @page.list.is_visible?, "it should be hidden by default"
|
28
|
+
|
29
|
+
@page.toggle
|
30
|
+
assert @page.list.is_visible?, "it should be visible now"
|
31
|
+
|
32
|
+
@page.toggle
|
33
|
+
refute @page.list.is_visible?, "it should be hidden now"
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_toggle_button
|
37
|
+
@page.toggle
|
38
|
+
assert_equal 20, @page.notifications.count
|
39
|
+
|
40
|
+
assert_equal "20",
|
41
|
+
@page.notifications.first.find_element(:css, '.notification-id').text
|
42
|
+
assert_equal "1",
|
43
|
+
@page.notifications.last.find_element(:css, '.notification-id').text
|
44
|
+
|
45
|
+
assert_equal "this is notification #1",
|
46
|
+
@page.notifications.last.find_element(:css, '.notification-message').text
|
47
|
+
end
|
48
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
Bundler.require(:default, :test)
|
3
|
+
|
4
|
+
require_relative 'sample/application'
|
5
|
+
|
6
|
+
Calliper.setup do |config|
|
7
|
+
config.application = SampleApplication
|
8
|
+
config.port = 3002
|
9
|
+
|
10
|
+
if ENV['CI']
|
11
|
+
config.driver = :remote
|
12
|
+
config.remote_url = "http://#{ENV['SAUCE_USERNAME']}:#{ENV['SAUCE_ACCESS_KEY']}@ondemand.saucelabs.com/wd/hub"
|
13
|
+
config.capabilities = {
|
14
|
+
'name' => 'Calliper',
|
15
|
+
'build' => ENV['TRAVIS_BUILD_NUMBER'],
|
16
|
+
'tunnel-identifier' => ENV['TRAVIS_JOB_NUMBER'],
|
17
|
+
'browserName' => ENV['BROWSER'] || 'firefox',
|
18
|
+
}
|
19
|
+
else
|
20
|
+
config.driver = (ENV['BROWSER'] || :firefox).to_sym
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
Calliper.enable!
|
metadata
ADDED
@@ -0,0 +1,139 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: calliper
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Julien Portalier
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDeDCCAmCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBBMQ8wDQYDVQQDDAZqdWxp
|
14
|
+
ZW4xGTAXBgoJkiaJk/IsZAEZFglwb3J0YWxpZXIxEzARBgoJkiaJk/IsZAEZFgNj
|
15
|
+
b20wHhcNMTQwMTE0MjIzMTQ4WhcNMTUwMTE0MjIzMTQ4WjBBMQ8wDQYDVQQDDAZq
|
16
|
+
dWxpZW4xGTAXBgoJkiaJk/IsZAEZFglwb3J0YWxpZXIxEzARBgoJkiaJk/IsZAEZ
|
17
|
+
FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpxWuWRJXEz2+p
|
18
|
+
2EW4NOPzkKloRLWoj+WQnqhQKT46GbH3ToDId8AMELTDIKpTQFiG2ty6D7S4IBFv
|
19
|
+
7ceFKNk/EJc17mSYE1DzrtItor2/eeGC1zeNfvLjyDtyHKyKUZ891C1D0so5coUx
|
20
|
+
2YbDW5npFkJkPaA5GneH7DFaCoIFLrD7ekbzaZAjlH+EH2fhd1XLhSsPEIiE+OnD
|
21
|
+
ilWnsPoRJAZwQOiVAtvh7xuc+29uSNndIIm2rU00SxbJnzsAq9ZddwPpMU/UcQpD
|
22
|
+
4gCBCaNGzrLz4+upQdYEOuggM7rR3P934qfhIwb+aRGglqdNunmUrdCuhsGXrxq2
|
23
|
+
FvqwDvFZAgMBAAGjezB5MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQW
|
24
|
+
BBQoESDCnNz3LmbpUzOrGeXOpk9sqjAfBgNVHREEGDAWgRRqdWxpZW5AcG9ydGFs
|
25
|
+
aWVyLmNvbTAfBgNVHRIEGDAWgRRqdWxpZW5AcG9ydGFsaWVyLmNvbTANBgkqhkiG
|
26
|
+
9w0BAQUFAAOCAQEAML4w0F/VF0gi5JqMqYSO05TakAauG8jQX0hov5H8M0Xhl79G
|
27
|
+
BdUllH0QEw0cP6J2g46zAk0FGHIGthx0OKKi5YMYTs/KPqOVIAcJslt2sGIC1Ukm
|
28
|
+
wpOWIg1XMe68+JVTktBKcBFAvc0pLtty1TgdSd2wr7KQgfmBU9I8G6AoPYhJOhkG
|
29
|
+
SHTTSX3ms2/XePuSnyOfir/AQC7U0NalnKLNdwY9gkEdNwiTf5Ga/lZVDQ607bow
|
30
|
+
KVqCN//9bevjMk5OiMi9X3Wu/GtVWDwC6OTWFWKd54KgbuWlakO8LC1SMmStnCIF
|
31
|
+
W4qpyMWMZMcB4ZN/0mUVzY5xwrislBtsmQVUSw==
|
32
|
+
-----END CERTIFICATE-----
|
33
|
+
date: 2014-02-07 00:00:00.000000000 Z
|
34
|
+
dependencies:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: selenium-webdriver
|
37
|
+
requirement: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
type: :runtime
|
43
|
+
prerelease: false
|
44
|
+
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - '>='
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0'
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: rack
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
56
|
+
type: :development
|
57
|
+
prerelease: false
|
58
|
+
version_requirements: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: minitest
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
description: Protractor for Ruby, or testing your Angular application with elegance.
|
78
|
+
email:
|
79
|
+
- julien@portalier.com
|
80
|
+
executables: []
|
81
|
+
extensions: []
|
82
|
+
extra_rdoc_files: []
|
83
|
+
files:
|
84
|
+
- .gitignore
|
85
|
+
- .travis.yml
|
86
|
+
- LICENSE
|
87
|
+
- README.md
|
88
|
+
- Rakefile
|
89
|
+
- VERSION
|
90
|
+
- calliper.gemspec
|
91
|
+
- certs/ysbaddaden.pem
|
92
|
+
- lib/calliper.rb
|
93
|
+
- lib/calliper/config.rb
|
94
|
+
- lib/calliper/minitest.rb
|
95
|
+
- lib/calliper/page.rb
|
96
|
+
- lib/calliper/rack.rb
|
97
|
+
- lib/calliper/rails.rb
|
98
|
+
- lib/calliper/server.rb
|
99
|
+
- lib/calliper/version.rb
|
100
|
+
- lib/calliper/webdriver.rb
|
101
|
+
- test/sample/application.rb
|
102
|
+
- test/sample/config.ru
|
103
|
+
- test/sample/public/javascripts/angular.js
|
104
|
+
- test/sample/public/javascripts/application.js
|
105
|
+
- test/sample/views/index.erb
|
106
|
+
- test/sample_test.rb
|
107
|
+
- test/test_helper.rb
|
108
|
+
homepage: http://github.com/ysbaddaden/calliper
|
109
|
+
licenses:
|
110
|
+
- MIT
|
111
|
+
metadata: {}
|
112
|
+
post_install_message:
|
113
|
+
rdoc_options: []
|
114
|
+
require_paths:
|
115
|
+
- lib
|
116
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
117
|
+
requirements:
|
118
|
+
- - '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
|
+
requirements: []
|
127
|
+
rubyforge_project:
|
128
|
+
rubygems_version: 2.0.14
|
129
|
+
signing_key:
|
130
|
+
specification_version: 4
|
131
|
+
summary: Protractor for Ruby, or testing your Angular application with elegance.
|
132
|
+
test_files:
|
133
|
+
- test/sample/application.rb
|
134
|
+
- test/sample/config.ru
|
135
|
+
- test/sample/public/javascripts/angular.js
|
136
|
+
- test/sample/public/javascripts/application.js
|
137
|
+
- test/sample/views/index.erb
|
138
|
+
- test/sample_test.rb
|
139
|
+
- test/test_helper.rb
|
metadata.gz.sig
ADDED
Binary file
|