sambal-cle 0.1.3 → 0.1.4
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/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.
|