canvas_connect 0.2 → 0.3
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/lib/canvas_connect.rb +18 -18
- data/lib/canvas_connect/meeting_archive.rb +4 -2
- data/lib/canvas_connect/version.rb +1 -1
- metadata +16 -14
- checksums.yaml +0 -7
- data/spec_canvas/lib/canvas/plugins/validators/adobe_connect_validator_spec.rb +0 -45
- data/spec_canvas/lib/canvas_connect/meeting_archive_spec.rb +0 -71
- data/spec_canvas/lib/canvas_connect/response_spec.rb +0 -52
- data/spec_canvas/lib/canvas_connect/service_spec.rb +0 -104
- data/spec_canvas/models/adobe_connect_conference_spec.rb +0 -54
data/lib/canvas_connect.rb
CHANGED
@@ -24,25 +24,27 @@ module CanvasConnect
|
|
24
24
|
class MeetingFolderError < StandardError; end
|
25
25
|
class MeetingNotFound < StandardError; end
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
view_path = File.expand_path('../app/views', File.dirname(__FILE__))
|
33
|
-
unless ApplicationController.view_paths.include?(view_path)
|
34
|
-
ApplicationController.view_paths.unshift(view_path)
|
35
|
-
end
|
27
|
+
configure_method = Proc.new do
|
28
|
+
view_path = File.expand_path('../app/views', File.dirname(__FILE__))
|
29
|
+
unless ApplicationController.view_paths.include?(view_path)
|
30
|
+
ApplicationController.view_paths.unshift(view_path)
|
31
|
+
end
|
36
32
|
|
37
|
-
|
33
|
+
ActiveSupport::Dependencies.autoload_paths << File.expand_path('../app/models', File.dirname(__FILE__))
|
38
34
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
35
|
+
require_dependency File.expand_path('../app/models/adobe_connect_conference.rb', File.dirname(__FILE__))
|
36
|
+
require_dependency "canvas/plugins/validators/adobe_connect_validator"
|
37
|
+
require_dependency "canvas/plugins/adobe_connect"
|
38
|
+
require_dependency "canvas_connect/meeting_archive"
|
43
39
|
|
44
|
-
|
45
|
-
|
40
|
+
Canvas::Plugins::AdobeConnect.new
|
41
|
+
end
|
42
|
+
|
43
|
+
if CANVAS_RAILS2
|
44
|
+
Rails.configuration.to_prepare(&configure_method)
|
45
|
+
else
|
46
|
+
class Railtie < Rails::Railtie; end
|
47
|
+
Railtie.config.to_prepare(&configure_method)
|
46
48
|
end
|
47
49
|
|
48
50
|
# Public: Find the plugin configuration.
|
@@ -76,5 +78,3 @@ module CanvasConnect
|
|
76
78
|
@client
|
77
79
|
end
|
78
80
|
end
|
79
|
-
|
80
|
-
CanvasConnect.register
|
@@ -15,6 +15,8 @@
|
|
15
15
|
# You should have received a copy of the GNU Affero General Public License along
|
16
16
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
17
|
#
|
18
|
+
require 'active_support/core_ext/object'
|
19
|
+
|
18
20
|
module CanvasConnect
|
19
21
|
class MeetingArchive
|
20
22
|
ATTRIBUTES = [:name, :url_path, :date_begin, :date_end, :date_modified, :duration, :date_created]
|
@@ -22,7 +24,7 @@ module CanvasConnect
|
|
22
24
|
|
23
25
|
def self.retrieve(meeting_id, client = CanvasConnect.client)
|
24
26
|
result = client.sco_contents(sco_id: meeting_id, filter_icon: 'archive')
|
25
|
-
|
27
|
+
result.css('results scos').map do |archive|
|
26
28
|
MeetingArchive.new(Nokogiri::XML(archive.to_xml))
|
27
29
|
end
|
28
30
|
end
|
@@ -42,7 +44,7 @@ module CanvasConnect
|
|
42
44
|
|
43
45
|
def method_missing(meth, *args, &block)
|
44
46
|
if ATTRIBUTES.include?(meth)
|
45
|
-
@attr_cache[meth] ||= @archive.
|
47
|
+
@attr_cache[meth] ||= @archive.at_css("#{meth.to_s.dasherize}").try(:text)
|
46
48
|
else
|
47
49
|
super
|
48
50
|
end
|
metadata
CHANGED
@@ -1,32 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: canvas_connect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '0.
|
4
|
+
version: '0.3'
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Zach Pendleton
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-12-04 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: rake
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- - '>='
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
21
|
version: 0.9.6
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- - '>='
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 0.9.6
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: adobe_connect
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
35
|
- - ~>
|
32
36
|
- !ruby/object:Gem::Version
|
@@ -34,6 +38,7 @@ dependencies:
|
|
34
38
|
type: :runtime
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
43
|
- - ~>
|
39
44
|
- !ruby/object:Gem::Version
|
@@ -60,33 +65,30 @@ files:
|
|
60
65
|
- lib/canvas_connect.rb
|
61
66
|
- lib/canvas_connect/meeting_archive.rb
|
62
67
|
- lib/canvas_connect/version.rb
|
63
|
-
- spec_canvas/lib/canvas/plugins/validators/adobe_connect_validator_spec.rb
|
64
|
-
- spec_canvas/lib/canvas_connect/meeting_archive_spec.rb
|
65
|
-
- spec_canvas/lib/canvas_connect/response_spec.rb
|
66
|
-
- spec_canvas/lib/canvas_connect/service_spec.rb
|
67
|
-
- spec_canvas/models/adobe_connect_conference_spec.rb
|
68
68
|
homepage: http://instructure.com
|
69
69
|
licenses: []
|
70
|
-
metadata: {}
|
71
70
|
post_install_message:
|
72
71
|
rdoc_options: []
|
73
72
|
require_paths:
|
74
73
|
- app
|
75
74
|
- lib
|
76
75
|
required_ruby_version: !ruby/object:Gem::Requirement
|
76
|
+
none: false
|
77
77
|
requirements:
|
78
|
-
- - '>='
|
78
|
+
- - ! '>='
|
79
79
|
- !ruby/object:Gem::Version
|
80
80
|
version: '0'
|
81
81
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
82
83
|
requirements:
|
83
|
-
- - '>='
|
84
|
+
- - ! '>='
|
84
85
|
- !ruby/object:Gem::Version
|
85
86
|
version: '0'
|
86
87
|
requirements: []
|
87
88
|
rubyforge_project:
|
88
|
-
rubygems_version:
|
89
|
+
rubygems_version: 1.8.23
|
89
90
|
signing_key:
|
90
|
-
specification_version:
|
91
|
+
specification_version: 3
|
91
92
|
summary: Adobe Connect integration for Instructure Canvas (http://instructure.com).
|
92
93
|
test_files: []
|
94
|
+
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 44f5fe287ab3b420a5dfe8d086ecb2baf9f52204
|
4
|
-
data.tar.gz: 8d25e01e810dc848577605c98e6eb7f25e19ed73
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 7df57750b292460c1d85d931d11dc4ba54d25e65a62dabec02df23568c1ae4d9aff473c2baef293a83e98352723492ba0373efa1d0abece052104ea9032b7d13
|
7
|
-
data.tar.gz: 0c045d467ec9046be597a6b3f6d6af6723bbd00c51bbf0727e639dd00ca35e5cb373c854bb2435e251a53f035bd572545a9184da8eb14ad742997221474ad0c2
|
@@ -1,45 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (C) 2012 Instructure, Inc.
|
3
|
-
#
|
4
|
-
# This file is part of Canvas.
|
5
|
-
#
|
6
|
-
# Canvas is free software: you can redistribute it and/or modify it under
|
7
|
-
# the terms of the GNU Affero General Public License as published by the Free
|
8
|
-
# Software Foundation, version 3 of the License.
|
9
|
-
#
|
10
|
-
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
11
|
-
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
12
|
-
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
13
|
-
# details.
|
14
|
-
#
|
15
|
-
# You should have received a copy of the GNU Affero General Public License along
|
16
|
-
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
-
#
|
18
|
-
|
19
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../../../../../../../spec/spec_helper')
|
20
|
-
|
21
|
-
describe Canvas::Plugins::Validators::AdobeConnectValidator do
|
22
|
-
let(:plugin_setting) { mock }
|
23
|
-
|
24
|
-
subject { Canvas::Plugins::Validators::AdobeConnectValidator }
|
25
|
-
|
26
|
-
it 'should allow an empty hash' do
|
27
|
-
subject.validate({}, plugin_setting).should eql Hash.new
|
28
|
-
end
|
29
|
-
|
30
|
-
it 'should error on missing keys' do
|
31
|
-
plugin_setting.expects(:errors).returns(stub(:add_to_base => true))
|
32
|
-
subject.validate({:domain => 'example.com'}, plugin_setting).should be_false
|
33
|
-
end
|
34
|
-
|
35
|
-
it 'should pass if all keys exist' do
|
36
|
-
valid_keys = {
|
37
|
-
:domain => 'example.com',
|
38
|
-
:login => 'username',
|
39
|
-
:password => 'password',
|
40
|
-
:meeting_container => 'folder_name'
|
41
|
-
}
|
42
|
-
|
43
|
-
subject.validate(valid_keys, plugin_setting).should eql valid_keys
|
44
|
-
end
|
45
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (C) 2013 Instructure, Inc.
|
3
|
-
#
|
4
|
-
# This file is part of Canvas.
|
5
|
-
#
|
6
|
-
# Canvas is free software: you can redistribute it and/or modify it under
|
7
|
-
# the terms of the GNU Affero General Public License as published by the Free
|
8
|
-
# Software Foundation, version 3 of the License.
|
9
|
-
#
|
10
|
-
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
11
|
-
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
12
|
-
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
13
|
-
# details.
|
14
|
-
#
|
15
|
-
# You should have received a copy of the GNU Affero General Public License along
|
16
|
-
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
-
#
|
18
|
-
|
19
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../../../../../spec/spec_helper')
|
20
|
-
|
21
|
-
describe CanvasConnect::Response do
|
22
|
-
|
23
|
-
describe CanvasConnect::MeetingArchive do
|
24
|
-
|
25
|
-
subject { CanvasConnect::MeetingArchive.retrieve(38230, nil).first }
|
26
|
-
|
27
|
-
before (:each) do
|
28
|
-
subject.should_receive(:archive) {
|
29
|
-
'<?xml version="1.0" encoding="utf-8"?>
|
30
|
-
<results>
|
31
|
-
<status code="ok"/>
|
32
|
-
<scos>
|
33
|
-
<sco sco-id="38230" source-sco-id="" folder-id="38223" type="content" icon="archive" display-seq="0" duration="0" is-folder="0">
|
34
|
-
<name>Test Recording</name>
|
35
|
-
<url-path>/p3u8rj0rvuj/</url-path>
|
36
|
-
<date-begin>2013-09-05T12:13:03.387-06:00</date-begin>
|
37
|
-
<date-end>2013-09-05T12:13:28.970-06:00</date-end>
|
38
|
-
<date-created>2013-09-05T12:13:03.387-06:00</date-created>
|
39
|
-
<date-modified>2013-09-05T12:13:29.727-06:00</date-modified>
|
40
|
-
</sco>
|
41
|
-
</scos>
|
42
|
-
</results>'
|
43
|
-
}
|
44
|
-
end
|
45
|
-
|
46
|
-
it "returns the name" do
|
47
|
-
subject.name.should == 'Test Recording'
|
48
|
-
end
|
49
|
-
|
50
|
-
it "returns the url_path" do
|
51
|
-
subject.url_path.should == '/p3u8rj0rvuj/'
|
52
|
-
end
|
53
|
-
|
54
|
-
it "returns the date_begin" do
|
55
|
-
subject.date_begin.should == '2013-09-05T12:13:03.387-06:00'
|
56
|
-
end
|
57
|
-
|
58
|
-
it "returns the date end" do
|
59
|
-
subject.date_end.should == '2013-09-05T12:13:28.970-06:00'
|
60
|
-
end
|
61
|
-
|
62
|
-
it "returns the date created" do
|
63
|
-
subject.date_created.should == '2013-09-05T12:13:03.387-06:00'
|
64
|
-
end
|
65
|
-
|
66
|
-
it "returns the date modified" do
|
67
|
-
subject.date_modified.should == '2013-09-05T12:13:29.727-06:00'
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
71
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (C) 2012 Instructure, Inc.
|
3
|
-
#
|
4
|
-
# This file is part of Canvas.
|
5
|
-
#
|
6
|
-
# Canvas is free software: you can redistribute it and/or modify it under
|
7
|
-
# the terms of the GNU Affero General Public License as published by the Free
|
8
|
-
# Software Foundation, version 3 of the License.
|
9
|
-
#
|
10
|
-
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
11
|
-
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
12
|
-
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
13
|
-
# details.
|
14
|
-
#
|
15
|
-
# You should have received a copy of the GNU Affero General Public License along
|
16
|
-
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
-
#
|
18
|
-
|
19
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../../../../../spec/spec_helper')
|
20
|
-
|
21
|
-
describe CanvasConnect::Response do
|
22
|
-
let(:body) { '<?xml version="1.0"?><items><item>Item Name</item></items>' }
|
23
|
-
subject { CanvasConnect::Response.new(200, {}, body) }
|
24
|
-
|
25
|
-
it { should respond_to(:status) }
|
26
|
-
it { should respond_to(:headers) }
|
27
|
-
it { should respond_to(:body) }
|
28
|
-
|
29
|
-
its(:body) { should be_an_instance_of(Nokogiri::XML::Document) }
|
30
|
-
|
31
|
-
describe 'initialize' do
|
32
|
-
it 'should require a status' do
|
33
|
-
lambda { CanvasConnect::Response.new }.should raise_error(ArgumentError)
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'should require headers' do
|
37
|
-
lambda { CanvasConnect::Response.new(200) }.should raise_error(ArgumentError)
|
38
|
-
end
|
39
|
-
|
40
|
-
it 'should require a body' do
|
41
|
-
lambda { CanvasConnect::Response.new(200, {}) }.should raise_error(ArgumentError)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
describe 'simple delegator' do
|
46
|
-
let(:body) { '<?xml version="1.0"?><items><item>Item Name</item></items>' }
|
47
|
-
|
48
|
-
it 'should delegate to body' do
|
49
|
-
subject.xpath('//item').text.should eql 'Item Name'
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
@@ -1,104 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (C) 2012 Instructure, Inc.
|
3
|
-
#
|
4
|
-
# This file is part of Canvas.
|
5
|
-
#
|
6
|
-
# Canvas is free software: you can redistribute it and/or modify it under
|
7
|
-
# the terms of the GNU Affero General Public License as published by the Free
|
8
|
-
# Software Foundation, version 3 of the License.
|
9
|
-
#
|
10
|
-
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
11
|
-
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
12
|
-
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
13
|
-
# details.
|
14
|
-
#
|
15
|
-
# You should have received a copy of the GNU Affero General Public License along
|
16
|
-
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
-
#
|
18
|
-
|
19
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../../../../../spec/spec_helper')
|
20
|
-
|
21
|
-
describe CanvasConnect::Service do
|
22
|
-
subject { CanvasConnect::Service.new('username', 'password', 'http://connect.example.com') }
|
23
|
-
|
24
|
-
before(:each) do
|
25
|
-
subject.stubs(:session_key).returns('CookieValue')
|
26
|
-
end
|
27
|
-
|
28
|
-
let(:login_response) do
|
29
|
-
body = <<-END
|
30
|
-
<?xml version="1.0" encoding="utf-8"?>
|
31
|
-
<results>
|
32
|
-
<status code="ok" />
|
33
|
-
</results>
|
34
|
-
END
|
35
|
-
|
36
|
-
CanvasConnect::Response.new(200, {}, body)
|
37
|
-
end
|
38
|
-
|
39
|
-
let(:session_response) do
|
40
|
-
body = <<-END
|
41
|
-
<?xml version="1.0" encoding="utf-8"?>
|
42
|
-
<results>
|
43
|
-
<status code="ok" />
|
44
|
-
<common locale="en" time-zone-id="1" time-zone-java-id="America/Denver">
|
45
|
-
<cookie>CookieValue</cookie>
|
46
|
-
<date>2012-12-21T12:00:00Z</date>
|
47
|
-
<host>http://connect.example.com</host>
|
48
|
-
<local-host>SpecHost</local-host>
|
49
|
-
<admin-host>http://connect.example.com</admin-host>
|
50
|
-
<url>/api/xml?action=common-info&session=CookieValue</url>
|
51
|
-
<version>9.0.0.1</version>
|
52
|
-
<account account-id="1" />
|
53
|
-
<user user-id="1" type="user">
|
54
|
-
<name>Don Draper</name>
|
55
|
-
<login>don@sterlingcooperdraperpryce.com</login>
|
56
|
-
</user>
|
57
|
-
</common>
|
58
|
-
<reg-user>
|
59
|
-
<is-reg-user>false</is-reg-user>
|
60
|
-
</reg-user>
|
61
|
-
</results>
|
62
|
-
END
|
63
|
-
|
64
|
-
CanvasConnect::Response.new(200, {}, body)
|
65
|
-
end
|
66
|
-
|
67
|
-
it { should respond_to(:username) }
|
68
|
-
it { should respond_to(:domain) }
|
69
|
-
it { should respond_to(:is_authenticated) }
|
70
|
-
|
71
|
-
describe 'initialize' do
|
72
|
-
it 'should require a username' do
|
73
|
-
lambda { CanvasConnect::Service.new }.should raise_error(ArgumentError)
|
74
|
-
end
|
75
|
-
|
76
|
-
it 'should require a password' do
|
77
|
-
lambda { CanvasConnect::Service.new('username') }.should raise_error(ArgumentError)
|
78
|
-
end
|
79
|
-
|
80
|
-
it 'should require a domain' do
|
81
|
-
lambda { CanvasConnect::Service.new('username', 'password') }.should raise_error(ArgumentError)
|
82
|
-
end
|
83
|
-
end
|
84
|
-
|
85
|
-
describe 'log in' do
|
86
|
-
it 'should authenticate the given user' do
|
87
|
-
subject.expects(:request).with('login', { :login => 'username', :password => 'password' }, true).returns(login_response)
|
88
|
-
subject.log_in
|
89
|
-
subject.should be_logged_in
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
describe 'method_missing' do
|
94
|
-
before(:each) do
|
95
|
-
Struct.new('FakeResponse', :status, :headers, :body)
|
96
|
-
@fake_response = Struct::FakeResponse.new(200, {}, '')
|
97
|
-
end
|
98
|
-
|
99
|
-
it 'should pass unknown methods onto the Adobe Connect API' do
|
100
|
-
subject.send(:client).expects(:get).with('http://connect.example.com/api/xml?action=fake-call', {'session' => 'CookieValue'}).returns(@fake_response)
|
101
|
-
subject.fake_call.should be_an_instance_of(CanvasConnect::Response)
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
#
|
2
|
-
# Copyright (C) 2012 Instructure, Inc.
|
3
|
-
#
|
4
|
-
# This file is part of Canvas.
|
5
|
-
#
|
6
|
-
# Canvas is free software: you can redistribute it and/or modify it under
|
7
|
-
# the terms of the GNU Affero General Public License as published by the Free
|
8
|
-
# Software Foundation, version 3 of the License.
|
9
|
-
#
|
10
|
-
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
11
|
-
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
12
|
-
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
13
|
-
# details.
|
14
|
-
#
|
15
|
-
# You should have received a copy of the GNU Affero General Public License along
|
16
|
-
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
-
#
|
18
|
-
|
19
|
-
require File.expand_path(File.dirname(__FILE__) + '/../../../../../spec/spec_helper')
|
20
|
-
|
21
|
-
describe AdobeConnectConference do
|
22
|
-
CONNECT_CONFIG = {
|
23
|
-
:domain => 'http://connect.example.com',
|
24
|
-
:username => 'user',
|
25
|
-
:password => 'password',
|
26
|
-
:password_dec => 'password',
|
27
|
-
:meeting_container => 'canvas_meetings'
|
28
|
-
}
|
29
|
-
|
30
|
-
before(:each) do
|
31
|
-
@conference = AdobeConnectConference.new
|
32
|
-
@conference.stubs(:config).returns(CONNECT_CONFIG)
|
33
|
-
end
|
34
|
-
|
35
|
-
subject { AdobeConnectConference.new }
|
36
|
-
|
37
|
-
context 'with an admin participant' do
|
38
|
-
before(:each) do
|
39
|
-
@user = User.new(:name => 'Don Draper')
|
40
|
-
AdobeConnect::Service.stubs(:user_session).returns('CookieValue')
|
41
|
-
@conference.expects(:add_host).with(@user).returns(@user)
|
42
|
-
end
|
43
|
-
|
44
|
-
it 'should generate an admin url using unique format if stored' do
|
45
|
-
stored_url = 'canvas-mtg-ACCOUNT_ID-ID-CREATED_SECONDS'
|
46
|
-
@conference.settings[:meeting_url_id] = stored_url
|
47
|
-
@conference.admin_join_url(@user).should == "http://connect.example.com/#{stored_url}"
|
48
|
-
end
|
49
|
-
|
50
|
-
it 'should generate an admin url using legacy format' do
|
51
|
-
@conference.admin_join_url(@user).should == "http://connect.example.com/canvas-meeting-#{@conference.id}"
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|