messenger-js 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.
- data/CHANGELOG +1 -0
- data/Gemfile +10 -0
- data/Gemfile.lock +100 -0
- data/LICENSE +21 -0
- data/Manifest +44 -0
- data/README.rdoc +0 -0
- data/Rakefile +38 -0
- data/assets/scripts/coffee/messenger/factory/builders/multi_signal_dismissed_builder.coffee +17 -0
- data/assets/scripts/coffee/messenger/factory/builders/signal_dismissed_builder.coffee +17 -0
- data/assets/scripts/coffee/messenger/factory/builders/time_dismissed_builder.coffee +16 -0
- data/assets/scripts/coffee/messenger/factory/builders/user_confirm_builder.coffee +16 -0
- data/assets/scripts/coffee/messenger/factory/builders/user_dialogue_builder.coffee +16 -0
- data/assets/scripts/coffee/messenger/factory/message_factory.coffee +30 -0
- data/assets/scripts/coffee/messenger/message_queue.coffee +46 -0
- data/assets/scripts/coffee/messenger/messages/message.coffee +26 -0
- data/assets/scripts/coffee/messenger/messages/multi_signal_dismissed_message.coffee +36 -0
- data/assets/scripts/coffee/messenger/messages/signal_dismissed_message.coffee +33 -0
- data/assets/scripts/coffee/messenger/messages/time_dismissed_message.coffee +25 -0
- data/assets/scripts/coffee/messenger/messages/user_confirm_message.coffee +27 -0
- data/assets/scripts/coffee/messenger/messages/user_dialogue_message.coffee +29 -0
- data/assets/scripts/coffee/messenger/system_message_manager.coffee +41 -0
- data/assets/scripts/coffee/patches.coffee +4 -0
- data/assets/scripts/js/lib/define_property.polyfill.js +131 -0
- data/assets/scripts/js/lib/jquery.js +5 -0
- data/bin/messenger.js +223 -0
- data/config/assets.rb +8 -0
- data/lib/messenger.rb +1 -0
- data/lib/messenger/symbols.rb +17 -0
- data/messenger-js.gemspec +36 -0
- data/spec/jasmine.yml +44 -0
- data/spec/runner.html +81 -0
- data/spec/support/classes.coffee +0 -0
- data/spec/support/helpers.coffee +22 -0
- data/spec/support/mocks.coffee +34 -0
- data/spec/support/objects.coffee +0 -0
- data/spec/support/requirements.coffee +1 -0
- data/spec/tests/factory/message_factory_spec.coffee +16 -0
- data/spec/tests/message_queue_spec.coffee +65 -0
- data/spec/tests/messages/message_spec.coffee +11 -0
- data/spec/tests/messages/multi_signal_dismissed_message_spec.coffee +33 -0
- data/spec/tests/messages/signal_dismissed_message_spec.coffee +25 -0
- data/spec/tests/messages/time_dismissed_message_spec.coffee +14 -0
- data/spec/tests/messages/user_confirm_message_spec.coffee +13 -0
- data/spec/tests/messages/user_dialogue_message_spec.coffee +21 -0
- data/spec/tests/system_messages_spec.coffee +38 -0
- metadata +134 -0
data/config/assets.rb
ADDED
data/lib/messenger.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "messenger/symbols"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require "keystone"
|
2
|
+
|
3
|
+
module Messenger
|
4
|
+
|
5
|
+
def self.pipeline
|
6
|
+
@@pipeline ||= ::Keystone.bootstrap("#{root_path}/config/assets.rb")
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.keystone_compiler
|
10
|
+
@@keystone_compiler ||= pipeline.compiler("messenger.js")
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.root_path
|
14
|
+
File.expand_path("#{File.dirname(__FILE__)}/../../")
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
Gem::Specification.new do |s|
|
4
|
+
s.name = "messenger-js"
|
5
|
+
s.version = "0.0.1"
|
6
|
+
|
7
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
+
s.authors = ["Tim Shelburne"]
|
9
|
+
s.date = "2013-05-01"
|
10
|
+
s.description = ""
|
11
|
+
s.email = "shelburt02@gmail.com"
|
12
|
+
s.executables = ["messenger.js"]
|
13
|
+
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.rdoc", "bin/messenger.js", "lib/messenger.rb", "lib/messenger/symbols.rb"]
|
14
|
+
s.files = ["CHANGELOG", "Gemfile", "Gemfile.lock", "LICENSE", "Manifest", "README.rdoc", "Rakefile", "assets/scripts/coffee/messenger/factory/builders/multi_signal_dismissed_builder.coffee", "assets/scripts/coffee/messenger/factory/builders/signal_dismissed_builder.coffee", "assets/scripts/coffee/messenger/factory/builders/time_dismissed_builder.coffee", "assets/scripts/coffee/messenger/factory/builders/user_confirm_builder.coffee", "assets/scripts/coffee/messenger/factory/builders/user_dialogue_builder.coffee", "assets/scripts/coffee/messenger/factory/message_factory.coffee", "assets/scripts/coffee/messenger/message_queue.coffee", "assets/scripts/coffee/messenger/messages/message.coffee", "assets/scripts/coffee/messenger/messages/multi_signal_dismissed_message.coffee", "assets/scripts/coffee/messenger/messages/signal_dismissed_message.coffee", "assets/scripts/coffee/messenger/messages/time_dismissed_message.coffee", "assets/scripts/coffee/messenger/messages/user_confirm_message.coffee", "assets/scripts/coffee/messenger/messages/user_dialogue_message.coffee", "assets/scripts/coffee/messenger/system_message_manager.coffee", "assets/scripts/coffee/patches.coffee", "assets/scripts/js/lib/define_property.polyfill.js", "assets/scripts/js/lib/jquery.js", "bin/messenger.js", "config/assets.rb", "lib/messenger.rb", "lib/messenger/symbols.rb", "spec/jasmine.yml", "spec/runner.html", "spec/support/classes.coffee", "spec/support/helpers.coffee", "spec/support/mocks.coffee", "spec/support/objects.coffee", "spec/support/requirements.coffee", "spec/tests/factory/message_factory_spec.coffee", "spec/tests/message_queue_spec.coffee", "spec/tests/messages/message_spec.coffee", "spec/tests/messages/multi_signal_dismissed_message_spec.coffee", "spec/tests/messages/signal_dismissed_message_spec.coffee", "spec/tests/messages/time_dismissed_message_spec.coffee", "spec/tests/messages/user_confirm_message_spec.coffee", "spec/tests/messages/user_dialogue_message_spec.coffee", "spec/tests/system_messages_spec.coffee", "messenger-js.gemspec"]
|
15
|
+
s.homepage = "https://github.com/tshelburne/messenger-js"
|
16
|
+
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Messenger-js", "--main", "README.rdoc"]
|
17
|
+
s.require_paths = ["lib"]
|
18
|
+
s.rubyforge_project = "messenger-js"
|
19
|
+
s.rubygems_version = "1.8.24"
|
20
|
+
s.summary = ""
|
21
|
+
|
22
|
+
if s.respond_to? :specification_version then
|
23
|
+
s.specification_version = 3
|
24
|
+
|
25
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
26
|
+
s.add_development_dependency(%q<jasmine>, [">= 0"])
|
27
|
+
s.add_development_dependency(%q<jasmine-headless-webkit>, [">= 0"])
|
28
|
+
else
|
29
|
+
s.add_dependency(%q<jasmine>, [">= 0"])
|
30
|
+
s.add_dependency(%q<jasmine-headless-webkit>, [">= 0"])
|
31
|
+
end
|
32
|
+
else
|
33
|
+
s.add_dependency(%q<jasmine>, [">= 0"])
|
34
|
+
s.add_dependency(%q<jasmine-headless-webkit>, [">= 0"])
|
35
|
+
end
|
36
|
+
end
|
data/spec/jasmine.yml
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
runner_output: "spec/runner.html"
|
2
|
+
|
3
|
+
# src_files
|
4
|
+
#
|
5
|
+
# Return an array of filepaths relative to src_dir to include before jasmine specs.
|
6
|
+
# Default: []
|
7
|
+
src_files:
|
8
|
+
- bin/*.js
|
9
|
+
|
10
|
+
# stylesheets
|
11
|
+
#
|
12
|
+
# Return an array of stylesheet filepaths relative to src_dir to include before jasmine specs.
|
13
|
+
# Default: []
|
14
|
+
stylesheets:
|
15
|
+
|
16
|
+
# helpers
|
17
|
+
#
|
18
|
+
# Return an array of filepaths relative to spec_dir to include before jasmine specs.
|
19
|
+
# Default: ["helpers/**/*.js"]
|
20
|
+
helpers:
|
21
|
+
- support/requirements.coffee
|
22
|
+
- support/helpers.coffee
|
23
|
+
- support/objects.coffee
|
24
|
+
- support/classes.coffee
|
25
|
+
- support/mocks.coffee
|
26
|
+
|
27
|
+
# spec_files
|
28
|
+
#
|
29
|
+
# Return an array of filepaths relative to spec_dir to include.
|
30
|
+
# Default: ["**/*[sS]pec.js"]
|
31
|
+
spec_files:
|
32
|
+
- ./**/*_spec.coffee
|
33
|
+
|
34
|
+
# src_dir
|
35
|
+
#
|
36
|
+
# Source directory path. Your src_files must be returned relative to this path. Will use root if left blank.
|
37
|
+
# Default: project root
|
38
|
+
src_dir:
|
39
|
+
|
40
|
+
# spec_dir
|
41
|
+
#
|
42
|
+
# Spec directory path. Your spec_files must be returned relative to this path.
|
43
|
+
# Default: spec/javascripts
|
44
|
+
spec_dir: spec
|
data/spec/runner.html
ADDED
@@ -0,0 +1,81 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type"/>
|
5
|
+
<title>Jasmine Test Runner - Generated by jasmine-headless-webkit</title>
|
6
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/vendor/ruby/1.9.1/gems/jasmine-headless-webkit-0.8.4/vendor/assets/javascripts/prolog.js"></script>
|
7
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/vendor/ruby/1.9.1/gems/jasmine-core-1.3.1/lib/jasmine-core/jasmine.js"></script>
|
8
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/vendor/ruby/1.9.1/gems/jasmine-core-1.3.1/lib/jasmine-core/jasmine-html.js"></script>
|
9
|
+
<link rel="stylesheet" href="/Users/tshelburne/Sites/dontlook/jslib/messenger/vendor/ruby/1.9.1/gems/jasmine-core-1.3.1/lib/jasmine-core/jasmine.css" type="text/css" />
|
10
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/vendor/ruby/1.9.1/gems/jasmine-headless-webkit-0.8.4/vendor/assets/javascripts/jasmine-extensions.js"></script>
|
11
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/vendor/ruby/1.9.1/gems/jasmine-headless-webkit-0.8.4/vendor/assets/javascripts/intense.js"></script>
|
12
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/vendor/ruby/1.9.1/gems/jasmine-headless-webkit-0.8.4/vendor/assets/javascripts/headless_reporter_result.js"></script>
|
13
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/vendor/ruby/1.9.1/gems/jasmine-headless-webkit-0.8.4/vendor/assets/javascripts/jasmine.HeadlessConsoleReporter.js"></script>
|
14
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/vendor/ruby/1.9.1/gems/jasmine-headless-webkit-0.8.4/vendor/assets/javascripts/jsDump.js"></script>
|
15
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/vendor/ruby/1.9.1/gems/jasmine-headless-webkit-0.8.4/vendor/assets/javascripts/beautify-html.js"></script>
|
16
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/bin/messenger.js"></script>
|
17
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/support/requirements.coffee.js"></script>
|
18
|
+
<script type="text/javascript">window.CSTF['requirements.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/support/requirements.coffee';</script>
|
19
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/support/helpers.coffee.js"></script>
|
20
|
+
<script type="text/javascript">window.CSTF['helpers.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/support/helpers.coffee';</script>
|
21
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/support/objects.coffee.js"></script>
|
22
|
+
<script type="text/javascript">window.CSTF['objects.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/support/objects.coffee';</script>
|
23
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/support/classes.coffee.js"></script>
|
24
|
+
<script type="text/javascript">window.CSTF['classes.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/support/classes.coffee';</script>
|
25
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/support/mocks.coffee.js"></script>
|
26
|
+
<script type="text/javascript">window.CSTF['mocks.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/support/mocks.coffee';</script>
|
27
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/factory/message_factory_spec.coffee.js"></script>
|
28
|
+
<script type="text/javascript">window.CSTF['message_factory_spec.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/factory/message_factory_spec.coffee';</script>
|
29
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/signal_dismissed_message_spec.coffee.js"></script>
|
30
|
+
<script type="text/javascript">window.CSTF['signal_dismissed_message_spec.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/signal_dismissed_message_spec.coffee';</script>
|
31
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/message_spec.coffee.js"></script>
|
32
|
+
<script type="text/javascript">window.CSTF['message_spec.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/message_spec.coffee';</script>
|
33
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/multi_signal_dismissed_message_spec.coffee.js"></script>
|
34
|
+
<script type="text/javascript">window.CSTF['multi_signal_dismissed_message_spec.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/multi_signal_dismissed_message_spec.coffee';</script>
|
35
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/user_confirm_message_spec.coffee.js"></script>
|
36
|
+
<script type="text/javascript">window.CSTF['user_confirm_message_spec.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/user_confirm_message_spec.coffee';</script>
|
37
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/time_dismissed_message_spec.coffee.js"></script>
|
38
|
+
<script type="text/javascript">window.CSTF['time_dismissed_message_spec.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/time_dismissed_message_spec.coffee';</script>
|
39
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/user_dialogue_message_spec.coffee.js"></script>
|
40
|
+
<script type="text/javascript">window.CSTF['user_dialogue_message_spec.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/user_dialogue_message_spec.coffee';</script>
|
41
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/message_queue_spec.coffee.js"></script>
|
42
|
+
<script type="text/javascript">window.CSTF['message_queue_spec.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/message_queue_spec.coffee';</script>
|
43
|
+
<script type="text/javascript" src="/Users/tshelburne/Sites/dontlook/jslib/messenger/.jhw-cache/coffee_script/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/system_messages_spec.coffee.js"></script>
|
44
|
+
<script type="text/javascript">window.CSTF['system_messages_spec.coffee.js'] = '/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/system_messages_spec.coffee';</script>
|
45
|
+
<script type="text/javascript">
|
46
|
+
if (window.JHW) { HeadlessReporterResult.specLineNumbers = {"/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/factory/message_factory_spec.coffee":{"MessageFactory":[3],"can build a message":[7],"can take a collection of additional message builders.":[13]},"/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/signal_dismissed_message_spec.coffee":{"SignalDismissedMessage":[4],"can dismiss upon receiving a dispatch from the signal":[13],"can suspend dismissal until after a set amount of time has passed":[19]},"/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/message_spec.coffee":{"Message":[4],"can return the html content of a message":[10]},"/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/multi_signal_dismissed_message_spec.coffee":{"MultiSignalDismissedMessage":[5],"can dismiss upon receiving a dispatch from one signal":[15],"can dismiss upon receiving a dispatch from another signal":[21],"can suspend dismissal until after a set amount of time has passed":[27]},"/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/user_confirm_message_spec.coffee":{"UserConfirmMessage":[3],"can dismiss upon the confirm button being clicked":[10]},"/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/time_dismissed_message_spec.coffee":{"TimeDismissedMessage":[3],"can dismiss after a given amount of time":[11]},"/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/messages/user_dialogue_message_spec.coffee":{"UserDialogueMessage":[6],"can dismiss upon the confirm button being clicked":[13],"can dismiss upon the deny button being clicked":[18]},"/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/message_queue_spec.coffee":{"MessageQueue":[4],"can add messages to the queue":[10],"can add messages to the queue at a specified position":[14],"can remove messages from the queue":[22],"when interacting with a Message":[28],"can dispatch signals for messages upon being queued":[34],"can dispatch signals for messages to be displayed":[39],"can dispatch signals for messages upon being dismissed":[44],"can remove a message once it is dismissed":[50],"can dispatch signals for messages upon being removed":[55],"can dispatch signals that the queue has finished":[61]},"/Users/tshelburne/Sites/dontlook/jslib/messenger/spec/tests/system_messages_spec.coffee":{"SystemMessageManager":[5],"when using MessageQueue":[11],"can queue a message":[13],"can queue a message at an index":[17],"can remove a message from the queue":[22],"can respond to the queue finishing":[27],"can display a message":[33]}}; }
|
47
|
+
</script>
|
48
|
+
</head>
|
49
|
+
<body>
|
50
|
+
<script type="text/javascript">
|
51
|
+
jasmine.getEnv().console = {
|
52
|
+
log: function(msg) { JHW.stdout.puts(msg) }
|
53
|
+
}
|
54
|
+
|
55
|
+
window._onload = window.onload;
|
56
|
+
|
57
|
+
window.onload = function() {
|
58
|
+
if (window._onload && (window._onload != window.onload)) {
|
59
|
+
window._onload();
|
60
|
+
}
|
61
|
+
|
62
|
+
if (window.JHW) {
|
63
|
+
jasmine.getEnv().addReporter(new jasmine.HeadlessConsoleReporter());
|
64
|
+
} else {
|
65
|
+
types = [ 'HtmlReporter', 'TrivialReporter' ];
|
66
|
+
|
67
|
+
for (var i = 0, j = types.length; i < j; ++i) {
|
68
|
+
var type = jasmine[types[i]]
|
69
|
+
if (type) {
|
70
|
+
jasmine.getEnv().addReporter(new type());
|
71
|
+
break;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
|
76
|
+
jasmine.getEnv().execute();
|
77
|
+
}
|
78
|
+
</script>
|
79
|
+
</body>
|
80
|
+
</html>
|
81
|
+
|
File without changes
|
@@ -0,0 +1,22 @@
|
|
1
|
+
(exports ? this).globalize = (fxn, name=null)=>
|
2
|
+
functionName = if name is null then fxn.name else name
|
3
|
+
(exports ? this)[functionName] = fxn
|
4
|
+
|
5
|
+
|
6
|
+
# MOCKING #
|
7
|
+
(exports ? this).mocks = {}
|
8
|
+
|
9
|
+
(exports ? this).addMock = (name, obj)=>
|
10
|
+
(exports ? this).mocks[name] = obj
|
11
|
+
|
12
|
+
|
13
|
+
# RUNTIME PATCHING #
|
14
|
+
(exports ? this).patches = {}
|
15
|
+
|
16
|
+
(exports ? this).patch = (method, patch)=>
|
17
|
+
(exports ? this).patches[method.name] = method
|
18
|
+
method = patch
|
19
|
+
|
20
|
+
(exports ? this).restore = (method)=>
|
21
|
+
method = (exports ? this).patches[method.name]
|
22
|
+
delete (exports ? this).patches[method.name]
|
@@ -0,0 +1,34 @@
|
|
1
|
+
addMock "message1",
|
2
|
+
type : "mock1"
|
3
|
+
message : "Mock message number 1."
|
4
|
+
dismiss :
|
5
|
+
add : ->
|
6
|
+
init: ->
|
7
|
+
getHtml: -> "<article id='message-1234'><p>Mock message number 1.</p></article>"
|
8
|
+
|
9
|
+
addMock "message2",
|
10
|
+
type : "mock2"
|
11
|
+
message : "Mock message number 2."
|
12
|
+
dismiss :
|
13
|
+
add : ->
|
14
|
+
init: ->
|
15
|
+
getHtml: -> "<article id='message-1234'><p>Mock message number 2.</p></article>"
|
16
|
+
|
17
|
+
addMock "timeMessage",
|
18
|
+
type : "time"
|
19
|
+
message : "Time message."
|
20
|
+
dismiss :
|
21
|
+
add : ->
|
22
|
+
|
23
|
+
addMock "messageBuilder",
|
24
|
+
canHandle : (type)->
|
25
|
+
type is "mock"
|
26
|
+
handle : (message, options)->
|
27
|
+
return mocks.message1 if message is "mock1"
|
28
|
+
return mocks.message2 if message is "mock2"
|
29
|
+
|
30
|
+
addMock "systemMessageManager",
|
31
|
+
queueMessage: (type, message, options)->
|
32
|
+
queueMessageAt: (type, message, options, index)->
|
33
|
+
removeMessage: (message)->
|
34
|
+
displayMessage: (message)->
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'lib/jquery'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
MessageFactory = require "messenger/factory/message_factory"
|
2
|
+
|
3
|
+
describe "MessageFactory", ->
|
4
|
+
beforeEach ->
|
5
|
+
factory = null
|
6
|
+
|
7
|
+
it "can build a message", ->
|
8
|
+
factory = MessageFactory.default()
|
9
|
+
message = factory.build("time", "A timed message.", { timeToDisplay : 500 })
|
10
|
+
expect(message?).toBeTruthy()
|
11
|
+
expect(message.message).toEqual "A timed message."
|
12
|
+
|
13
|
+
it "can take a collection of additional message builders.", ->
|
14
|
+
factory = MessageFactory.default([ mocks.messageBuilder ])
|
15
|
+
expect(factory.builders.indexOf( mocks.messageBuilder )).not.toEqual -1
|
16
|
+
expect(factory.build("mock", "mock1", {})).toEqual mocks.message1
|
@@ -0,0 +1,65 @@
|
|
1
|
+
MessageQueue = require "messenger/message_queue"
|
2
|
+
Message = require "messenger/messages/message"
|
3
|
+
|
4
|
+
describe "MessageQueue", ->
|
5
|
+
queue = null
|
6
|
+
|
7
|
+
beforeEach ->
|
8
|
+
queue = new MessageQueue()
|
9
|
+
|
10
|
+
it "can add messages to the queue", ->
|
11
|
+
queue.add(mocks.message1)
|
12
|
+
expect(queue.messages.length).toEqual 1
|
13
|
+
|
14
|
+
it "can add messages to the queue at a specified position", ->
|
15
|
+
queue.add(mocks.message1)
|
16
|
+
queue.addAt(mocks.message2, 0)
|
17
|
+
queue.addAt(mocks.message2, 1)
|
18
|
+
queue.addAt(mocks.message1, 1)
|
19
|
+
expect(queue.messages[0]).toEqual mocks.message2
|
20
|
+
expect(queue.messages[1]).toEqual mocks.message1
|
21
|
+
|
22
|
+
it "can remove messages from the queue", ->
|
23
|
+
queue.add(mocks.message1)
|
24
|
+
queue.add(mocks.message2)
|
25
|
+
queue.remove(mocks.message1)
|
26
|
+
expect(queue.messages.length).toEqual 1
|
27
|
+
|
28
|
+
describe "when interacting with a Message", ->
|
29
|
+
message = null
|
30
|
+
|
31
|
+
beforeEach ->
|
32
|
+
message = new Message()
|
33
|
+
|
34
|
+
it "can dispatch signals for messages upon being queued", ->
|
35
|
+
spyOn(queue.queued, "dispatch")
|
36
|
+
queue.add(message)
|
37
|
+
expect(queue.queued.dispatch).toHaveBeenCalledWith(message)
|
38
|
+
|
39
|
+
it "can dispatch signals for messages to be displayed", ->
|
40
|
+
spyOn(queue.display, "dispatch")
|
41
|
+
queue.add(message)
|
42
|
+
expect(queue.display.dispatch).toHaveBeenCalledWith(message)
|
43
|
+
|
44
|
+
it "can dispatch signals for messages upon being dismissed", ->
|
45
|
+
spyOn(queue.dismissed, "dispatch")
|
46
|
+
queue.add(message)
|
47
|
+
message.dismiss.dispatch()
|
48
|
+
expect(queue.dismissed.dispatch).toHaveBeenCalledWith(message)
|
49
|
+
|
50
|
+
it "can remove a message once it is dismissed", ->
|
51
|
+
queue.add(message)
|
52
|
+
message.dismiss.dispatch()
|
53
|
+
expect(queue.messages.length).toEqual 0
|
54
|
+
|
55
|
+
it "can dispatch signals for messages upon being removed", ->
|
56
|
+
spyOn(queue.removed, "dispatch")
|
57
|
+
queue.add(message)
|
58
|
+
message.dismiss.dispatch()
|
59
|
+
expect(queue.removed.dispatch).toHaveBeenCalledWith(message)
|
60
|
+
|
61
|
+
it "can dispatch signals that the queue has finished", ->
|
62
|
+
spyOn(queue.finished, "dispatch")
|
63
|
+
queue.add(message)
|
64
|
+
message.dismiss.dispatch()
|
65
|
+
expect(queue.finished.dispatch).toHaveBeenCalled()
|
@@ -0,0 +1,11 @@
|
|
1
|
+
Message = require "messenger/messages/message"
|
2
|
+
Message::buildMarkupObj = (message)-> @markupObj = $("<article id='MESSAGE-ID'><p>#{message}</p></article>")
|
3
|
+
|
4
|
+
describe "Message", ->
|
5
|
+
message = null
|
6
|
+
|
7
|
+
beforeEach ->
|
8
|
+
message = new Message("Message.")
|
9
|
+
|
10
|
+
it "can return the html content of a message", ->
|
11
|
+
expect(message.getHtml()).toEqual "<article id=\"MESSAGE-ID\"><p>Message.</p></article>"
|
@@ -0,0 +1,33 @@
|
|
1
|
+
MultiSignalDismissedMessage = require "messenger/messages/multi_signal_dismissed_message"
|
2
|
+
|
3
|
+
Signal = require "cronus/signal"
|
4
|
+
|
5
|
+
describe "MultiSignalDismissedMessage", ->
|
6
|
+
message = null
|
7
|
+
signal1 = new Signal()
|
8
|
+
signal2 = new Signal()
|
9
|
+
|
10
|
+
beforeEach ->
|
11
|
+
message = new MultiSignalDismissedMessage("Signal message.", [ signal1, signal2 ], 0)
|
12
|
+
spyOn(message.dismiss, "dispatch")
|
13
|
+
jasmine.Clock.useMock()
|
14
|
+
|
15
|
+
it "can dismiss upon receiving a dispatch from one signal", ->
|
16
|
+
message.init()
|
17
|
+
signal1.dispatch()
|
18
|
+
jasmine.Clock.tick(100)
|
19
|
+
expect(message.dismiss.dispatch).toHaveBeenCalledWith message
|
20
|
+
|
21
|
+
it "can dismiss upon receiving a dispatch from another signal", ->
|
22
|
+
message.init()
|
23
|
+
signal2.dispatch()
|
24
|
+
jasmine.Clock.tick(100)
|
25
|
+
expect(message.dismiss.dispatch).toHaveBeenCalledWith message
|
26
|
+
|
27
|
+
it "can suspend dismissal until after a set amount of time has passed", ->
|
28
|
+
message.minTimeToShow = 200
|
29
|
+
message.init()
|
30
|
+
signal1.dispatch()
|
31
|
+
expect(message.dismiss.dispatch).not.toHaveBeenCalled()
|
32
|
+
jasmine.Clock.tick 201
|
33
|
+
expect(message.dismiss.dispatch).toHaveBeenCalledWith message
|
@@ -0,0 +1,25 @@
|
|
1
|
+
SignalDismissedMessage = require "messenger/messages/signal_dismissed_message"
|
2
|
+
Signal = require "cronus/signal"
|
3
|
+
|
4
|
+
describe "SignalDismissedMessage", ->
|
5
|
+
message = null
|
6
|
+
signal = new Signal()
|
7
|
+
|
8
|
+
beforeEach ->
|
9
|
+
message = new SignalDismissedMessage("Signal message.", signal, 0)
|
10
|
+
spyOn(message.dismiss, "dispatch")
|
11
|
+
jasmine.Clock.useMock()
|
12
|
+
|
13
|
+
it "can dismiss upon receiving a dispatch from the signal", ->
|
14
|
+
message.init()
|
15
|
+
signal.dispatch()
|
16
|
+
jasmine.Clock.tick(100)
|
17
|
+
expect(message.dismiss.dispatch).toHaveBeenCalledWith message
|
18
|
+
|
19
|
+
it "can suspend dismissal until after a set amount of time has passed", ->
|
20
|
+
message.minTimeToShow = 200
|
21
|
+
message.init()
|
22
|
+
signal.dispatch()
|
23
|
+
expect(message.dismiss.dispatch).not.toHaveBeenCalled()
|
24
|
+
jasmine.Clock.tick 201
|
25
|
+
expect(message.dismiss.dispatch).toHaveBeenCalledWith message
|
@@ -0,0 +1,14 @@
|
|
1
|
+
TimeDismissedMessage = require "messenger/messages/time_dismissed_message"
|
2
|
+
|
3
|
+
describe "TimeDismissedMessage", ->
|
4
|
+
message = null
|
5
|
+
|
6
|
+
beforeEach ->
|
7
|
+
message = new TimeDismissedMessage("Time message.", 50)
|
8
|
+
spyOn(message.dismiss, "dispatch")
|
9
|
+
jasmine.Clock.useMock()
|
10
|
+
|
11
|
+
it "can dismiss after a given amount of time", ->
|
12
|
+
message.init()
|
13
|
+
jasmine.Clock.tick(51)
|
14
|
+
expect(message.dismiss.dispatch).toHaveBeenCalledWith message
|
@@ -0,0 +1,13 @@
|
|
1
|
+
UserConfirmMessage = require "messenger/messages/user_confirm_message"
|
2
|
+
|
3
|
+
describe "UserConfirmMessage", ->
|
4
|
+
message = null
|
5
|
+
|
6
|
+
beforeEach ->
|
7
|
+
message = new UserConfirmMessage("Confirm message.", "OK")
|
8
|
+
spyOn(message.dismiss, "dispatch")
|
9
|
+
|
10
|
+
it "can dismiss upon the confirm button being clicked", ->
|
11
|
+
message.init()
|
12
|
+
message.confirmClicked()
|
13
|
+
expect(message.dismiss.dispatch).toHaveBeenCalledWith message
|