sambal-cle 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +3 -1
- data/lib/sambal-cle/base_page.rb +3 -1
- data/lib/sambal-cle/data_objects/announcement.rb +7 -10
- data/lib/sambal-cle/data_objects/assessment.rb +265 -9
- data/lib/sambal-cle/data_objects/assignment.rb +38 -32
- data/lib/sambal-cle/data_objects/assignment_permissions.rb +61 -0
- data/lib/sambal-cle/data_objects/assignment_submission.rb +126 -0
- data/lib/sambal-cle/data_objects/blog.rb +4 -7
- data/lib/sambal-cle/data_objects/blogger.rb +4 -10
- data/lib/sambal-cle/data_objects/chat_room.rb +5 -8
- data/lib/sambal-cle/data_objects/event.rb +6 -17
- data/lib/sambal-cle/data_objects/forum.rb +9 -19
- data/lib/sambal-cle/data_objects/lesson.rb +8 -29
- data/lib/sambal-cle/data_objects/message.rb +7 -10
- data/lib/sambal-cle/data_objects/poll.rb +6 -11
- data/lib/sambal-cle/data_objects/resource.rb +28 -37
- data/lib/sambal-cle/data_objects/site.rb +6 -17
- data/lib/sambal-cle/data_objects/syllabus.rb +6 -8
- data/lib/sambal-cle/data_objects/user.rb +88 -0
- data/lib/sambal-cle/data_objects/web_content_tool.rb +5 -6
- data/lib/sambal-cle/data_objects/wiki.rb +6 -6
- data/lib/sambal-cle/page_objects/account.rb +0 -2
- data/lib/sambal-cle/page_objects/announcements.rb +0 -1
- data/lib/sambal-cle/page_objects/assessments.rb +57 -87
- data/lib/sambal-cle/page_objects/assignments.rb +117 -337
- data/lib/sambal-cle/page_objects/calendar.rb +0 -2
- data/lib/sambal-cle/page_objects/login.rb +3 -9
- data/lib/sambal-cle/page_objects/sections.rb +2 -3
- data/lib/sambal-cle/page_objects/site_setup.rb +9 -19
- data/lib/sambal-cle/rich_text.rb +6 -0
- data/lib/sambal-cle/utilities.rb +4 -10
- data/lib/sambal-cle/workflows.rb +1 -5
- data/lib/sambal-cle.rb +2 -10
- data/sambal-cle.gemspec +7 -8
- data/test/add_assignment_to_calendar_spec.rb +14 -15
- data/test/assessment_create_spec.rb +355 -0
- data/test/assignment_announcements_spec.rb +14 -15
- data/test/assignment_duplicate_spec.rb +56 -0
- data/test/assignment_gradebook_spec.rb +16 -15
- data/test/assignment_permissions_spec.rb +77 -0
- data/test/assignments_grading_spec.rb +123 -0
- data/test/assignments_submission_spec.rb +143 -0
- data/test/config.yml +3 -0
- data/test/directory.yml +120 -0
- data/test/duplicate_site_spec.rb +5 -3
- data/test/import_site_content_spec.rb +248 -0
- metadata +22 -31
- data/lib/sambal-cle/core-ext.rb +0 -90
- data/lib/sambal-cle/date_makers.rb +0 -118
- data/lib/sambal-cle/gem_ext.rb +0 -23
- data/lib/sambal-cle/page_helper.rb +0 -22
- data/lib/sambal-cle/page_maker.rb +0 -48
- data/lib/sambal-cle/randomizers.rb +0 -117
@@ -1,7 +1,7 @@
|
|
1
1
|
class BloggerPostObject
|
2
2
|
|
3
|
-
include
|
4
|
-
include
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
5
|
include Workflows
|
6
6
|
|
7
7
|
attr_accessor :title, :abstract, :site, :text, :read_only, :access, :allow_comments
|
@@ -16,14 +16,8 @@ class BloggerPostObject
|
|
16
16
|
}
|
17
17
|
options = defaults.merge(opts)
|
18
18
|
|
19
|
-
|
20
|
-
@
|
21
|
-
@site=options[:site]
|
22
|
-
@text=options[:text]
|
23
|
-
@read_only=options[:read_only]
|
24
|
-
@access=options[:access]
|
25
|
-
@allow_comments=options[:allow_comments]
|
26
|
-
raise "You need to specify a site for your blogger post" if @site==nil
|
19
|
+
set(options)
|
20
|
+
requires @site
|
27
21
|
end
|
28
22
|
|
29
23
|
def create
|
@@ -1,7 +1,8 @@
|
|
1
1
|
class ChatRoomObject
|
2
2
|
|
3
|
-
include
|
4
|
-
include
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
|
+
include StringFactory
|
5
6
|
include Workflows
|
6
7
|
|
7
8
|
attr_accessor :title, :description, :chat_display, :allow_change, :site
|
@@ -17,12 +18,8 @@ class ChatRoomObject
|
|
17
18
|
}
|
18
19
|
options = defaults.merge(opts)
|
19
20
|
|
20
|
-
|
21
|
-
@
|
22
|
-
@chat_display=options[:chat_display]
|
23
|
-
@allow_change=options[:allow_change]
|
24
|
-
@site=options[:site]
|
25
|
-
raise "You need to specify a site for your chat room" if @site==nil
|
21
|
+
set_options(options)
|
22
|
+
requires @site
|
26
23
|
end
|
27
24
|
|
28
25
|
def create
|
@@ -1,7 +1,9 @@
|
|
1
1
|
class EventObject
|
2
2
|
|
3
|
-
include
|
4
|
-
include
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
|
+
include DateFactory
|
6
|
+
include StringFactory
|
5
7
|
include Workflows
|
6
8
|
|
7
9
|
attr_accessor :title, :month, :day, :year, :start_hour, :start_minute,
|
@@ -23,21 +25,8 @@ class EventObject
|
|
23
25
|
}
|
24
26
|
options = defaults.merge(opts)
|
25
27
|
|
26
|
-
|
27
|
-
@
|
28
|
-
@day=options[:day]
|
29
|
-
@year=options[:year]
|
30
|
-
@start_hour=options[:start_hour]
|
31
|
-
@start_minute=options[:start_minute]
|
32
|
-
@start_meridian=options[:start_meridian]
|
33
|
-
@duration_hours=options[:duration_hours]
|
34
|
-
@duration_minutes=options[:duration_minutes]
|
35
|
-
@end_hour=options[:end_hour]
|
36
|
-
@end_minute=options[:end_minute]
|
37
|
-
@end_meridian=options[:end_meridian]
|
38
|
-
@message=options[:message]
|
39
|
-
@site=options[:site]
|
40
|
-
raise "You need to specify a site for your wiki" if @site==nil
|
28
|
+
set_options(options)
|
29
|
+
requires @site
|
41
30
|
end
|
42
31
|
|
43
32
|
def create
|
@@ -1,8 +1,9 @@
|
|
1
1
|
# Note that this class is for icon-sakai-forums. NOT jforums.
|
2
2
|
class ForumObject
|
3
3
|
|
4
|
-
include
|
5
|
-
include
|
4
|
+
include Foundry
|
5
|
+
include DataFactory
|
6
|
+
include StringFactory
|
6
7
|
include Workflows
|
7
8
|
|
8
9
|
attr_accessor :site, :title, :short_description, :description, :direct_link,
|
@@ -16,11 +17,8 @@ class ForumObject
|
|
16
17
|
}
|
17
18
|
options = defaults.merge(opts)
|
18
19
|
|
19
|
-
|
20
|
-
@
|
21
|
-
@short_description=options[:short_description]
|
22
|
-
@description=options[:description]
|
23
|
-
raise "You need to specify a site for your Forum" if @site==nil
|
20
|
+
set_options(options)
|
21
|
+
requires @site
|
24
22
|
end
|
25
23
|
|
26
24
|
alias :name :title
|
@@ -53,9 +51,7 @@ class ForumObject
|
|
53
51
|
end
|
54
52
|
edit.save
|
55
53
|
end
|
56
|
-
|
57
|
-
@short_description=opts[:short_description] unless opts[:short_description] == nil
|
58
|
-
@description=opts[:description] unless opts[:description] == nil
|
54
|
+
set_options(opts)
|
59
55
|
end
|
60
56
|
|
61
57
|
def view
|
@@ -101,7 +97,7 @@ end
|
|
101
97
|
|
102
98
|
class TopicObject
|
103
99
|
|
104
|
-
include
|
100
|
+
include Foundry
|
105
101
|
include Utilities
|
106
102
|
include Workflows
|
107
103
|
|
@@ -120,11 +116,7 @@ class TopicObject
|
|
120
116
|
}
|
121
117
|
options = defaults.merge(opts)
|
122
118
|
|
123
|
-
|
124
|
-
@short_description=options[:short_description]
|
125
|
-
@description=options[:description]
|
126
|
-
@site=options[:site]
|
127
|
-
@forum=options[:forum]
|
119
|
+
set_options(options)
|
128
120
|
raise "You must define a site for your Topic" if @site==nil
|
129
121
|
raise "You must specify an existing Forum for your Topic" if @forum==nil
|
130
122
|
end
|
@@ -160,9 +152,7 @@ class TopicObject
|
|
160
152
|
end
|
161
153
|
edit.save
|
162
154
|
end
|
163
|
-
|
164
|
-
@short_description=opts[:short_description] unless opts[:short_description] == nil
|
165
|
-
@description=opts[:description] unless opts[:description] == nil
|
155
|
+
set_options(opts)
|
166
156
|
end
|
167
157
|
|
168
158
|
def view
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class ModuleObject
|
2
2
|
|
3
|
-
include
|
4
|
-
include
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
5
|
include Workflows
|
6
6
|
|
7
7
|
attr_accessor :title, :description, :keywords, :start_date, :end_date, :site, :href
|
@@ -14,13 +14,8 @@ class ModuleObject
|
|
14
14
|
}
|
15
15
|
options = defaults.merge(opts)
|
16
16
|
|
17
|
-
|
18
|
-
@
|
19
|
-
@keywords=options[:keywords]
|
20
|
-
@start_date=options[:start_date]
|
21
|
-
@end_date=options[:end_date]
|
22
|
-
@site=options[:site]
|
23
|
-
raise "You must specify a Site name for your lesson" if @site==nil
|
17
|
+
set_options(options)
|
18
|
+
requires @site
|
24
19
|
end
|
25
20
|
|
26
21
|
alias :name :title
|
@@ -52,8 +47,8 @@ end
|
|
52
47
|
|
53
48
|
class ContentSectionObject
|
54
49
|
|
55
|
-
include
|
56
|
-
include
|
50
|
+
include Foundry
|
51
|
+
include DataFactory
|
57
52
|
include Workflows
|
58
53
|
|
59
54
|
attr_accessor :site, :module, :title, :instructions, :modality, :content_type,
|
@@ -70,21 +65,7 @@ class ContentSectionObject
|
|
70
65
|
}
|
71
66
|
options = defaults.merge(opts)
|
72
67
|
|
73
|
-
|
74
|
-
@module=options[:module]
|
75
|
-
@title=options[:title]
|
76
|
-
@instructions=options[:instructions]
|
77
|
-
@modality=options[:modality]
|
78
|
-
@content_type=options[:content_type]
|
79
|
-
@copyright_status=options[:copyright_status]
|
80
|
-
@editor_content=options[:editor_content]
|
81
|
-
@file_name=options[:file_name]
|
82
|
-
@file_path=options[:file_path]
|
83
|
-
@file_description=options[:file_description]
|
84
|
-
@file_folder=options[:file_folder]
|
85
|
-
@url=options[:url]
|
86
|
-
@url_title=options[:url_title]
|
87
|
-
@url_description=options[:url_description]
|
68
|
+
set_options(options)
|
88
69
|
raise "Your modality variable must be an Array containing one or more keys\nthat match the checkbox methods, like this:\n[:uncheck_textual, :check_visual, :check_auditory]" unless @modality.class==Array
|
89
70
|
raise "You must specify a Site for your Section" if @site==nil
|
90
71
|
raise "You must specify a Module for your Section" if @module==nil
|
@@ -178,8 +159,6 @@ class ContentSectionObject
|
|
178
159
|
|
179
160
|
edit.finish
|
180
161
|
end
|
181
|
-
|
182
|
-
@instructions=opts[:instructions] unless opts[:instructions]==nil
|
183
|
-
@modality=opts[:modality] unless opts[:modality]==nil
|
162
|
+
set_options(opts)
|
184
163
|
end
|
185
164
|
end
|
@@ -1,7 +1,8 @@
|
|
1
1
|
class MessageObject
|
2
2
|
|
3
|
-
include
|
4
|
-
include
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
|
+
include StringFactory
|
5
6
|
include Workflows
|
6
7
|
|
7
8
|
attr_accessor :site, :subject, :send_cc, :recipients, :message, :label
|
@@ -15,12 +16,8 @@ class MessageObject
|
|
15
16
|
}
|
16
17
|
options = defaults.merge(opts)
|
17
18
|
|
18
|
-
|
19
|
-
@
|
20
|
-
@site=options[:site]
|
21
|
-
@message=options[:message]
|
22
|
-
@label=options[:label]
|
23
|
-
raise "You need to specify a site for your web content" if @site==nil
|
19
|
+
set_options(options)
|
20
|
+
requires @site
|
24
21
|
end
|
25
22
|
|
26
23
|
def create
|
@@ -36,8 +33,8 @@ end
|
|
36
33
|
|
37
34
|
class MessageFolderObject
|
38
35
|
|
39
|
-
include
|
40
|
-
include
|
36
|
+
include Foundry
|
37
|
+
include DataFactory
|
41
38
|
include Workflows
|
42
39
|
|
43
40
|
attr_accessor :site
|
@@ -1,7 +1,8 @@
|
|
1
1
|
class PollObject
|
2
2
|
|
3
|
-
include
|
4
|
-
include
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
|
+
include StringFactory
|
5
6
|
include Workflows
|
6
7
|
|
7
8
|
attr_accessor :question, :instructions, :options, :opening_date, :closing_date,
|
@@ -16,15 +17,8 @@ class PollObject
|
|
16
17
|
}
|
17
18
|
options = defaults.merge(opts)
|
18
19
|
|
19
|
-
|
20
|
-
@
|
21
|
-
@opening_date=options[:opening_date]
|
22
|
-
@closing_date=options[:closing_date]
|
23
|
-
@site=options[:site]
|
24
|
-
@instructions=options[:instructions]
|
25
|
-
@access=options[:access]
|
26
|
-
@visibility=options[:visibility]
|
27
|
-
raise "You need to specify a site for your blog entry" if @site==nil
|
20
|
+
set_options(options)
|
21
|
+
requires @site
|
28
22
|
end
|
29
23
|
|
30
24
|
def create
|
@@ -59,6 +53,7 @@ class PollObject
|
|
59
53
|
|
60
54
|
def edit opts={}
|
61
55
|
#TODO: Add stuff here
|
56
|
+
set_options(opts)
|
62
57
|
end
|
63
58
|
|
64
59
|
def view
|
@@ -1,7 +1,7 @@
|
|
1
1
|
class FileObject
|
2
2
|
|
3
|
-
include
|
4
|
-
include
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
5
|
include Workflows
|
6
6
|
|
7
7
|
attr_accessor :name, :site, :source_path, :target_folder, :href
|
@@ -13,11 +13,9 @@ class FileObject
|
|
13
13
|
}
|
14
14
|
options = defaults.merge(opts)
|
15
15
|
|
16
|
-
|
17
|
-
@
|
18
|
-
@site
|
19
|
-
options[:target_folder] == nil ? @target_folder=@site : @target_folder=options[:target_folder]
|
20
|
-
raise "You must specify a Site for your Folder" if @site==nil
|
16
|
+
set_options(options)
|
17
|
+
@target_folder=@site if options[:target_folder]==nil
|
18
|
+
requires @site
|
21
19
|
end
|
22
20
|
|
23
21
|
def create
|
@@ -38,8 +36,8 @@ class FileObject
|
|
38
36
|
end
|
39
37
|
|
40
38
|
class FolderObject
|
41
|
-
include
|
42
|
-
include
|
39
|
+
include Foundry
|
40
|
+
include DataFactory
|
43
41
|
include Workflows
|
44
42
|
|
45
43
|
attr_accessor :name, :parent_folder, :site
|
@@ -52,10 +50,8 @@ class FolderObject
|
|
52
50
|
}
|
53
51
|
options = defaults.merge(opts)
|
54
52
|
|
55
|
-
|
56
|
-
@
|
57
|
-
@site = options[:site]
|
58
|
-
raise "You must specify a Site for your Folder" if @site==nil
|
53
|
+
set_options(options)
|
54
|
+
requires @site
|
59
55
|
end
|
60
56
|
|
61
57
|
def create
|
@@ -73,19 +69,19 @@ class FolderObject
|
|
73
69
|
end
|
74
70
|
|
75
71
|
class WebLinkObject
|
76
|
-
include
|
77
|
-
include
|
72
|
+
include Foundry
|
73
|
+
include DataFactory
|
78
74
|
include Workflows
|
79
75
|
|
80
|
-
attr_accessor
|
76
|
+
attr_accessor :site
|
81
77
|
|
82
78
|
def initialize(browser, opts={})
|
83
79
|
@browser = browser
|
84
80
|
|
85
81
|
defaults = {}
|
86
82
|
options = defaults.merge(opts)
|
87
|
-
|
88
|
-
|
83
|
+
set_options(options)
|
84
|
+
requires @site
|
89
85
|
end
|
90
86
|
|
91
87
|
def create
|
@@ -96,8 +92,8 @@ end
|
|
96
92
|
|
97
93
|
class HTMLPageObject
|
98
94
|
|
99
|
-
include
|
100
|
-
include
|
95
|
+
include Foundry
|
96
|
+
include DataFactory
|
101
97
|
include Workflows
|
102
98
|
|
103
99
|
attr_accessor :name, :description, :site, :folder, :html, :url
|
@@ -112,13 +108,8 @@ class HTMLPageObject
|
|
112
108
|
}
|
113
109
|
options = defaults.merge(opts)
|
114
110
|
|
115
|
-
|
116
|
-
@
|
117
|
-
@site = options[:site]
|
118
|
-
@folder = options[:folder]
|
119
|
-
@html = options[:html]
|
120
|
-
@site = options[:site]
|
121
|
-
raise "You must specify a Site for your HTML Page" if @site==nil
|
111
|
+
set_options(options)
|
112
|
+
requires @site
|
122
113
|
end
|
123
114
|
|
124
115
|
alias :title :name
|
@@ -163,19 +154,19 @@ class HTMLPageObject
|
|
163
154
|
end
|
164
155
|
|
165
156
|
class TextDocumentObject
|
166
|
-
include
|
167
|
-
include
|
157
|
+
include Foundry
|
158
|
+
include DataFactory
|
168
159
|
include Workflows
|
169
160
|
|
170
|
-
attr_accessor
|
161
|
+
attr_accessor :site
|
171
162
|
|
172
163
|
def initialize(browser, opts={})
|
173
164
|
@browser = browser
|
174
165
|
|
175
166
|
defaults = {}
|
176
167
|
options = defaults.merge(opts)
|
177
|
-
|
178
|
-
|
168
|
+
set_options(options)
|
169
|
+
requires @site
|
179
170
|
end
|
180
171
|
|
181
172
|
def create
|
@@ -186,19 +177,19 @@ class TextDocumentObject
|
|
186
177
|
end
|
187
178
|
|
188
179
|
class CitationListObject
|
189
|
-
include
|
190
|
-
include
|
180
|
+
include Foundry
|
181
|
+
include DataFactory
|
191
182
|
include Workflows
|
192
183
|
|
193
|
-
attr_accessor
|
184
|
+
attr_accessor :site
|
194
185
|
|
195
186
|
def initialize(browser, opts={})
|
196
187
|
@browser = browser
|
197
188
|
|
198
189
|
defaults = {}
|
199
190
|
options = defaults.merge(opts)
|
200
|
-
|
201
|
-
|
191
|
+
set_options(options)
|
192
|
+
requires @site
|
202
193
|
end
|
203
194
|
|
204
195
|
def create
|
@@ -1,9 +1,9 @@
|
|
1
1
|
class SiteObject
|
2
2
|
|
3
|
-
include
|
4
|
-
include
|
5
|
-
include
|
6
|
-
include
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
|
+
include StringFactory
|
6
|
+
include DateFactory
|
7
7
|
include Workflows
|
8
8
|
|
9
9
|
attr_accessor :name, :id, :subject, :course, :section, :term, :authorizer,
|
@@ -27,19 +27,7 @@ class SiteObject
|
|
27
27
|
:site_contact_name => random_alphanums(5)+" "+random_alphanums(8)
|
28
28
|
}
|
29
29
|
options = defaults.merge(opts)
|
30
|
-
|
31
|
-
@subject=options[:subject]
|
32
|
-
@course=options[:course]
|
33
|
-
@section=options[:section]
|
34
|
-
@authorizer=options[:authorizer]
|
35
|
-
@web_content_source=options[:web_content_source]
|
36
|
-
@email=options[:email]
|
37
|
-
@joiner_role=options[:joiner_role]
|
38
|
-
@web_content_title=options[:web_content_title]
|
39
|
-
@description=options[:description]
|
40
|
-
@short_description=options[:short_description]
|
41
|
-
@site_contact_name=options[:site_contact_name]
|
42
|
-
@site_contact_email=options[:site_contact_email]
|
30
|
+
set_options(options)
|
43
31
|
end
|
44
32
|
|
45
33
|
def create
|
@@ -268,6 +256,7 @@ class SiteObject
|
|
268
256
|
|
269
257
|
end
|
270
258
|
|
259
|
+
# TODO: Improve this method to better take advantage of the UserObject...
|
271
260
|
def add_official_participants opts={}
|
272
261
|
participants = opts[:participants].join("\n")
|
273
262
|
open_my_site_by_name @name unless @browser.title=~/#{@name}/
|
@@ -1,7 +1,8 @@
|
|
1
1
|
class SyllabusObject
|
2
2
|
|
3
|
-
include
|
4
|
-
include
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
|
+
include StringFactory
|
5
6
|
include Workflows
|
6
7
|
|
7
8
|
attr_accessor :title, :content, :site
|
@@ -14,10 +15,8 @@ class SyllabusObject
|
|
14
15
|
:content=>random_multiline(50, 5, :alpha)
|
15
16
|
}
|
16
17
|
options = defaults.merge(opts)
|
17
|
-
|
18
|
-
@
|
19
|
-
@site=options[:site]
|
20
|
-
raise "You must specify a Site for the announcement" if @site==nil
|
18
|
+
set_options(options)
|
19
|
+
requires @site
|
21
20
|
end
|
22
21
|
|
23
22
|
alias :name :title
|
@@ -50,8 +49,7 @@ class SyllabusObject
|
|
50
49
|
item.title.set opts[:title] unless opts[:title]==nil
|
51
50
|
item.enter_source_text(item.editor, opts[:content]) unless opts[:content]==nil
|
52
51
|
end
|
53
|
-
|
54
|
-
@content = opts[:content] unless opts[:content]==nil
|
52
|
+
set_options(opts)
|
55
53
|
end
|
56
54
|
|
57
55
|
def get_properties
|
@@ -0,0 +1,88 @@
|
|
1
|
+
class UserObject
|
2
|
+
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
|
+
include StringFactory
|
6
|
+
include DateFactory
|
7
|
+
include Workflows
|
8
|
+
|
9
|
+
attr_accessor :id, :first_name, :last_name, :password, :email, :type,
|
10
|
+
:created_by, :creation_date, :modified_by, :modified_date, :internal_id,
|
11
|
+
:full_name, :long_name, :ln_fn_id
|
12
|
+
|
13
|
+
def initialize(browser, opts={})
|
14
|
+
@browser = browser
|
15
|
+
defaults = {
|
16
|
+
:id=>random_alphanums,
|
17
|
+
:first_name=>random_alphanums,
|
18
|
+
:last_name=>random_alphanums,
|
19
|
+
:email=>random_email,
|
20
|
+
:type=>"Student",
|
21
|
+
:password=>random_alphanums,
|
22
|
+
}
|
23
|
+
options = defaults.merge(opts)
|
24
|
+
|
25
|
+
set_options(options)
|
26
|
+
@full_name="#{@first_name} #{last_name}"
|
27
|
+
@long_name="#{@first_name} #{last_name} (#{@id})"
|
28
|
+
@ln_fn_id="#{@last_name}, #{@first_name} (#{@id})"
|
29
|
+
end
|
30
|
+
|
31
|
+
def create
|
32
|
+
# TODO
|
33
|
+
end
|
34
|
+
|
35
|
+
def edit opts={}
|
36
|
+
# TODO
|
37
|
+
end
|
38
|
+
|
39
|
+
def view
|
40
|
+
# TODO
|
41
|
+
end
|
42
|
+
|
43
|
+
def delete
|
44
|
+
# TODO
|
45
|
+
end
|
46
|
+
|
47
|
+
def exist?
|
48
|
+
# TODO
|
49
|
+
end
|
50
|
+
|
51
|
+
def log_in
|
52
|
+
if logged_in?
|
53
|
+
# do nothing
|
54
|
+
else # see if we're on the login screen
|
55
|
+
if @browser.frame(:id, "ifrm").text_field(:id, "eid").present?
|
56
|
+
userlogin
|
57
|
+
else # Log the current user out, then log in
|
58
|
+
log_out
|
59
|
+
userlogin
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
alias login log_in
|
64
|
+
|
65
|
+
def logged_in?
|
66
|
+
welcome=@browser.span(:class=>"welcome")
|
67
|
+
if welcome.present?
|
68
|
+
welcome.text=~/#{@first_name}/ ? true : false
|
69
|
+
else
|
70
|
+
return false
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
def log_out
|
75
|
+
@browser.link(:text=>"Logout").click
|
76
|
+
end
|
77
|
+
|
78
|
+
private
|
79
|
+
|
80
|
+
def userlogin
|
81
|
+
on Login do |page|
|
82
|
+
page.login_with @id, @password
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
|
@@ -1,7 +1,8 @@
|
|
1
1
|
class WebContentObject
|
2
2
|
|
3
|
-
include
|
4
|
-
include
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
|
+
include StringFactory
|
5
6
|
include Workflows
|
6
7
|
|
7
8
|
attr_accessor :title, :source, :site
|
@@ -15,10 +16,8 @@ class WebContentObject
|
|
15
16
|
}
|
16
17
|
options = defaults.merge(opts)
|
17
18
|
|
18
|
-
|
19
|
-
@
|
20
|
-
@site=options[:site]
|
21
|
-
raise "You need to specify a site for your web content" if @site==nil
|
19
|
+
set_options(options)
|
20
|
+
requires @site
|
22
21
|
end
|
23
22
|
|
24
23
|
def create
|
@@ -1,7 +1,8 @@
|
|
1
1
|
class WikiObject
|
2
2
|
|
3
|
-
include
|
4
|
-
include
|
3
|
+
include Foundry
|
4
|
+
include DataFactory
|
5
|
+
include StringFactory
|
5
6
|
include Workflows
|
6
7
|
|
7
8
|
attr_accessor :title, :content, :site, :href
|
@@ -15,10 +16,8 @@ class WikiObject
|
|
15
16
|
}
|
16
17
|
options = defaults.merge(opts)
|
17
18
|
|
18
|
-
|
19
|
-
@
|
20
|
-
@site=options[:site]
|
21
|
-
raise "You need to specify a site for your wiki" if @site==nil
|
19
|
+
set_options(options)
|
20
|
+
requires @site
|
22
21
|
end
|
23
22
|
|
24
23
|
alias :name :title
|
@@ -48,6 +47,7 @@ class WikiObject
|
|
48
47
|
edit.edit
|
49
48
|
# TODO more here
|
50
49
|
end
|
50
|
+
set_options(opts)
|
51
51
|
end
|
52
52
|
|
53
53
|
def get_content
|
@@ -53,7 +53,6 @@ class UserAccount < BasePage
|
|
53
53
|
# Clicks the Modify Details button. Instantiates the EditAccount class.
|
54
54
|
def modify_details
|
55
55
|
@browser.frame(:index=>0).button(:name=>"eventSubmit_doModify").click
|
56
|
-
EditAccount.new(@browser)
|
57
56
|
end
|
58
57
|
|
59
58
|
# Gets the text of the User ID field.
|
@@ -105,7 +104,6 @@ class UserAccount < BasePage
|
|
105
104
|
# instantiates the Home Class.
|
106
105
|
def home
|
107
106
|
@browser.link(:text, "Home").click
|
108
|
-
Home.new(@browser)
|
109
107
|
end
|
110
108
|
|
111
109
|
end
|
@@ -51,7 +51,6 @@ class Announcements < BasePage
|
|
51
51
|
# @param subject [String] the text of the announcement listing link.
|
52
52
|
def preview_announcement(subject)
|
53
53
|
frm.link(:text=>subject).click
|
54
|
-
PreviewAnnouncements.new(@browser)
|
55
54
|
end
|
56
55
|
|
57
56
|
# Selects the specified list item from the View selection list.
|