kuali-sakai-common-lib 0.0.1 → 0.0.6

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.
Files changed (32) hide show
  1. data/kuali-sakai-common-lib.gemspec +4 -5
  2. data/lib/kuali-sakai-common-lib.rb +3 -2
  3. data/lib/kuali-sakai-common-lib/add_files.rb +260 -0
  4. data/lib/kuali-sakai-common-lib/announcements.rb +301 -0
  5. data/lib/kuali-sakai-common-lib/assessments.rb +1183 -0
  6. data/lib/kuali-sakai-common-lib/assignments.rb +861 -0
  7. data/lib/kuali-sakai-common-lib/basic_lti.rb +13 -0
  8. data/lib/kuali-sakai-common-lib/blogs.rb +23 -0
  9. data/lib/kuali-sakai-common-lib/calendar.rb +466 -0
  10. data/lib/kuali-sakai-common-lib/calendar_summary.rb +0 -0
  11. data/lib/kuali-sakai-common-lib/chat_room.rb +0 -0
  12. data/lib/{core-ext.rb → kuali-sakai-common-lib/core-ext.rb} +0 -0
  13. data/lib/kuali-sakai-common-lib/drop_box.rb +0 -0
  14. data/lib/kuali-sakai-common-lib/email_archive.rb +28 -0
  15. data/lib/kuali-sakai-common-lib/forums.rb +326 -0
  16. data/lib/kuali-sakai-common-lib/gem_ext.rb +36 -0
  17. data/lib/kuali-sakai-common-lib/gradebook.rb +23 -0
  18. data/lib/kuali-sakai-common-lib/gradebook2.rb +24 -0
  19. data/lib/kuali-sakai-common-lib/messages.rb +639 -0
  20. data/lib/kuali-sakai-common-lib/news.rb +8 -0
  21. data/lib/kuali-sakai-common-lib/polls.rb +77 -0
  22. data/lib/kuali-sakai-common-lib/post_em.rb +0 -0
  23. data/lib/kuali-sakai-common-lib/profile.rb +46 -0
  24. data/lib/kuali-sakai-common-lib/profile2.rb +360 -0
  25. data/lib/kuali-sakai-common-lib/resources_roster.rb +0 -0
  26. data/lib/kuali-sakai-common-lib/rwiki.rb +0 -0
  27. data/lib/kuali-sakai-common-lib/sections.rb +237 -0
  28. data/lib/kuali-sakai-common-lib/single_user.rb +0 -0
  29. data/lib/kuali-sakai-common-lib/site_statistics.rb +0 -0
  30. data/lib/kuali-sakai-common-lib/syllabus.rb +182 -0
  31. data/lib/{utilities.rb → kuali-sakai-common-lib/utilities.rb} +13 -2
  32. metadata +51 -8
@@ -0,0 +1,639 @@
1
+ #================
2
+ # Messages Pages
3
+ #================
4
+
5
+ # The Messages page for a Site
6
+ module MessagesMethods
7
+
8
+ # Clicks the Compose Message button,
9
+ # then instantiates the
10
+ # ComposeMessage class.
11
+ def compose_message
12
+ frm.link(:text=>"Compose Message").click
13
+ sleep 1 #FIXME
14
+ ComposeMessage.new(@browser)
15
+ end
16
+
17
+ def received
18
+ frm.link(:text=>"Received").click
19
+ MessagesReceivedList.new(@browser)
20
+ end
21
+
22
+ def sent
23
+ frm.link(:text=>"Sent").click
24
+ MessagesSentList.new(@browser)
25
+ end
26
+
27
+ def deleted
28
+ frm.link(:text=>"Deleted").click
29
+ MessagesDeletedList.new(@browser)
30
+ end
31
+
32
+ def draft
33
+ frm.link(:text=>"Draft").click
34
+ MessagesDraftList.new(@browser)
35
+ end
36
+
37
+ def open_folder(foldername)
38
+ frm.link(:text=>foldername).click
39
+ FolderList.new(@browser)
40
+ end
41
+
42
+ def new_folder
43
+ frm.link(:text=>"New Folder").click
44
+ MessagesNewFolder.new(@browser)
45
+ end
46
+
47
+ def settings
48
+ frm.link(:text=>"Settings").click
49
+ MessagesSettings.new(@browser)
50
+ end
51
+
52
+ # Gets the count of messages
53
+ # in the specified folder
54
+ # and returns it as a string
55
+ def total_messages_in_folder(folder_name)
56
+ frm.table(:id=>"msgForum:_id23:0:privateForums").row(:text=>/#{Regexp.escape(folder_name)}/).span(:class=>"textPanelFooter", :index=>0).text =~ /\d+/
57
+ return $~.to_s
58
+ end
59
+
60
+ # Gets the count of unread messages
61
+ # in the specified folder and returns it
62
+ # as a string
63
+ def unread_messages_in_folder(folder_name)
64
+ frm.table(:id=>"msgForum:_id23:0:privateForums").row(:text=>/#{Regexp.escape(folder_name)}/).span(:text=>/unread/).text =~ /\d+/
65
+ return $~.to_s
66
+ end
67
+
68
+ # Gets all the folder names
69
+ def folders
70
+ links = frm.table(:class=>"hierItemBlockWrapper").links.find_all { |link| link.title != /Folder Settings/ }
71
+ folders = []
72
+ links.each { |link| folders << link.text }
73
+ return folders
74
+ end
75
+
76
+ def folder_settings(folder_name)
77
+ frm.table(:class=>"hierItemBlockWrapper").row(:text=>/#{Regexp.escape(folder_name)}/).link(:text=>"Folder Settings").click
78
+ MessageFolderSettings.new(@browser)
79
+ end
80
+
81
+ end
82
+
83
+ # The page showing the user's Sent Messages.
84
+ module MessagesSentListMethods
85
+
86
+ include PageObject
87
+
88
+ # Clicks the "Messages" breadcrumb link to return
89
+ # to the top level of Messages. Then instantiates
90
+ # the Messages class.
91
+ def messages
92
+ frm.link(:text=>"Messages").click
93
+ Messages.new(@browser)
94
+ end
95
+
96
+ # Creates an array consisting of the
97
+ # message subject lines.
98
+ def subjects
99
+ titles = []
100
+ messages = frm.table(:id=>"prefs_pvt_form:pvtmsgs")
101
+ 1.upto(messages.rows.size-1) do |x|
102
+ titles << messages.row(:index=>x).a.title
103
+ end
104
+ return titles
105
+ end
106
+
107
+ # Returns a string consisting of the content of the
108
+ # page header--or "breadcrumb", as it's called.
109
+ def header
110
+ frm.div(:class=>"breadCrumb specialLink").text
111
+ end
112
+
113
+ # Clicks the Compose Message button,
114
+ # then instantiates the
115
+ # ComposeMessage class.
116
+ def compose_message
117
+ frm.link(:text=>"Compose Message").click
118
+ ComposeMessage.new(@browser)
119
+ end
120
+
121
+ # Grabs the text from the message
122
+ # box that appears after doing some
123
+ # action.
124
+ #
125
+ # Use this method to simplify writing
126
+ # Test::Unit asserts
127
+ def alert_message_text
128
+ frm.span(:class=>"success").text
129
+ end
130
+
131
+ def self.page_elements(identifier)
132
+ in_frame(identifier) do |frame|
133
+ link(:check_all, :text=>"Check All", :frame=>frame)
134
+ end
135
+ end
136
+ end
137
+
138
+ # The page showing the list of received messages.
139
+ module MessagesReceivedListMethods
140
+ include PageObject
141
+ # Returns a string consisting of the content of the
142
+ # page header--or "breadcrumb", as it's called.
143
+ def header
144
+ frm.div(:class=>"breadCrumb specialLink").text
145
+ end
146
+
147
+ # Clicks the "Messages" breadcrumb link to return
148
+ # to the top level of Messages. Then instantiates
149
+ # the Messages class.
150
+ def messages
151
+ frm.link(:text=>"Messages").click
152
+ Messages.new(@browser)
153
+ end
154
+
155
+ def compose_message
156
+ frm.link(:text=>"Compose Message").click
157
+ ComposeMessage.new(@browser)
158
+ end
159
+
160
+ # Clicks on the specified message subject
161
+ # then instantiates the MessageView class.
162
+ def open_message(subject)
163
+ frm.link(:text, /#{Regexp.escape(subject)}/).click
164
+ MessageView.new(@browser)
165
+ end
166
+
167
+ # Grabs the text from the message
168
+ # box that appears after doing some
169
+ # action.
170
+ #
171
+ # Use this method to simplify writing
172
+ # Test::Unit asserts
173
+ def alert_message_text
174
+ frm.span(:class=>"success").text
175
+ end
176
+
177
+ # Checks the checkbox for the specified
178
+ # message in the list.
179
+ #
180
+ # Will throw an error if the specified
181
+ # subject is not present.
182
+ def check_message(subject)
183
+ index=subjects.index(subject)
184
+ frm.checkbox(:name=>"prefs_pvt_form:pvtmsgs:#{index}:_id122").set
185
+ end
186
+
187
+ # Clicks the "Mark Read" link, then
188
+ # reinstantiates the class because
189
+ # the page partially refreshes.
190
+ def mark_read
191
+ frm.link(:text=>"Mark Read").click
192
+ MessagesReceivedList.new(@browser)
193
+ end
194
+
195
+ # Creates an array consisting of the
196
+ # message subject lines.
197
+ def subjects
198
+ titles = []
199
+ messages = frm.table(:id=>"prefs_pvt_form:pvtmsgs")
200
+ 1.upto(messages.rows.size-1) do |x|
201
+ titles << messages.row(:index=>x).a.title
202
+ end
203
+ return titles
204
+ end
205
+
206
+ # Returns an Array object containing the
207
+ # subjects of the displayed messages that are
208
+ # marked unread.
209
+ def unread_messages
210
+ # TODO - Write this method
211
+ end
212
+
213
+ # Clicks the Move link, then
214
+ # instantiates the MoveMessageTo Class.
215
+ def move
216
+ frm.link(:text, "Move").click
217
+ MoveMessageTo.new(@browser)
218
+ end
219
+
220
+ def self.page_elements(identifier)
221
+ in_frame(identifier) do |frame|
222
+ select_list(:view, :id=>"prefs_pvt_form:viewlist", :frame=>frame)
223
+ link(:check_all, :text=>"Check All", :frame=>frame)
224
+ link(:delete, :text=>"Delete", :frame=>frame)
225
+ end
226
+ end
227
+ end
228
+
229
+ module FolderListMethods
230
+ include PageObject
231
+ def compose_message
232
+ frm.link(:text=>"Compose Message").click
233
+ ComposeMessage.new(@browser)
234
+ end
235
+
236
+ # Clicks on the specified message subject
237
+ # then instantiates the MessageView class.
238
+ def open_message(subject)
239
+ frm.link(:text, /#{Regexp.escape(subject)}/).click
240
+ MessageView.new(@browser)
241
+ end
242
+
243
+ # Grabs the text from the message
244
+ # box that appears after doing some
245
+ # action.
246
+ #
247
+ # Use this method to simplify writing
248
+ # Test::Unit asserts
249
+ def alert_message_text
250
+ frm.span(:class=>"success").text
251
+ end
252
+
253
+ # Checks the checkbox for the specified
254
+ # message in the list.
255
+ #
256
+ # Will throw an error if the specified
257
+ # subject is not present.
258
+ def check_message(subject)
259
+ index=subjects.index(subject)
260
+ frm.checkbox(:name=>"prefs_pvt_form:pvtmsgs:#{index}:_id122").set
261
+ end
262
+
263
+ # Clicks the Messages link in the
264
+ # Breadcrumb bar at the top of the
265
+ # page, then instantiates the Messages
266
+ # class
267
+ def messages
268
+ frm.link(:text=>"Messages").click
269
+ Messages.new(@browser)
270
+ end
271
+
272
+ # Clicks the "Mark Read" link, then
273
+ # reinstantiates the class because
274
+ # the page partially refreshes.
275
+ def mark_read
276
+ frm.link(:text=>"Mark Read").click
277
+ MessagesReceivedList.new(@browser)
278
+ end
279
+
280
+ # Creates an array consisting of the
281
+ # message subject lines.
282
+ def subjects
283
+ titles = []
284
+ messages = frm.table(:id=>"prefs_pvt_form:pvtmsgs")
285
+ 1.upto(messages.rows.size-1) do |x|
286
+ titles << messages.row(:index=>x).a.title
287
+ end
288
+ return titles
289
+ end
290
+
291
+ def unread_messages
292
+ # TODO - Write this method
293
+ end
294
+
295
+ def move
296
+ frm.link(:text, "Move").click
297
+ MoveMessageTo.new(@browser)
298
+ end
299
+
300
+ def self.page_elements(identifier)
301
+ in_frame(identifier) do |frame|
302
+ select_list(:view, :id=>"prefs_pvt_form:viewlist", :frame=>frame)
303
+ link(:check_all, :text=>"Check All", :frame=>frame)
304
+ link(:delete, :text=>"Delete", :frame=>frame)
305
+ end
306
+ end
307
+ end
308
+
309
+ module MoveMessageToMethods
310
+ include PageObject
311
+ def move_messages
312
+ frm.button(:value=>"Move Messages").click
313
+ Messages.new(@browser)
314
+ end
315
+
316
+ # Method for selecting any custom folders
317
+ # present on the screen--and *only* the custom
318
+ # folders. Count begins with "1" for the first custom
319
+ # folder listed.
320
+ def select_custom_folder_num(num)
321
+ frm.radio(:index=>num.to_i+3).set
322
+ end
323
+
324
+ def self.page_elements(identifier)
325
+ in_frame(identifier) do |frame|
326
+ radio_button(:received, :name=>"pvtMsgMove:_id16:0:privateForums:0:_id19", :frame=>frame)
327
+ radio_button(:sent, :name=>"pvtMsgMove:_id16:0:privateForums:1:_id19", :frame=>frame)
328
+ radio_button(:deleted, :name=>"pvtMsgMove:_id16:0:privateForums:2:_id19", :frame=>frame)
329
+ radio_button(:draft, :name=>"pvtMsgMove:_id16:0:privateForums:3:_id19", :frame=>frame)
330
+ end
331
+ end
332
+ end
333
+
334
+ module MessagesDeletedListMethods
335
+ include PageObject
336
+ # Returns a string consisting of the content of the
337
+ # page header--or "breadcrumb", as it's called.
338
+ def header
339
+ frm.div(:class=>"breadCrumb specialLink").text
340
+ end
341
+
342
+ # Clicks the "Messages" breadcrumb link to return
343
+ # to the top level of Messages. Then instantiates
344
+ # the Messages class.
345
+ def messages
346
+ frm.link(:text=>"Messages").click
347
+ Messages.new(@browser)
348
+ end
349
+
350
+ def compose_message
351
+ frm.link(:text=>"Compose Message").click
352
+ ComposeMessage.new(@browser)
353
+ end
354
+
355
+ # Grabs the text from the message
356
+ # box that appears after doing some
357
+ # action.
358
+ #
359
+ # Use this method to simplify writing
360
+ # Test::Unit asserts
361
+ def alert_message_text
362
+ frm.span(:class=>"success").text
363
+ end
364
+
365
+ # Creates an array consisting of the
366
+ # message subject lines.
367
+ def subjects
368
+ titles = []
369
+ messages = frm.table(:id=>"prefs_pvt_form:pvtmsgs")
370
+ 1.upto(messages.rows.size-1) do |x|
371
+ titles << messages[x][2].text
372
+ end
373
+ return titles
374
+ end
375
+
376
+ # Checks the checkbox for the specified
377
+ # message in the list.
378
+ #
379
+ # Will throw an error if the specified
380
+ # subject is not present.
381
+ def check_message(subject)
382
+ index=subjects.index(subject)
383
+ frm.checkbox(:name=>"prefs_pvt_form:pvtmsgs:#{index}:_id122").set
384
+ end
385
+
386
+ def move
387
+ frm.link(:text, "Move").click
388
+ MoveMessageTo.new(@browser)
389
+ end
390
+
391
+ def delete
392
+ frm.link(:text=>"Delete").click
393
+ MessageDeleteConfirmation.new(@browser)
394
+ end
395
+
396
+ def self.page_elements(identifier)
397
+ in_frame(identifier) do |frame|
398
+ link(:check_all, :text=>"Check All", :frame=>frame)
399
+ end
400
+ end
401
+ end
402
+
403
+ # The page showing the list of Draft messages.
404
+ module MessagesDraftListMethods
405
+ include PageObject
406
+ def compose_message
407
+ frm.link(:text=>"Compose Message").click
408
+ ComposeMessage.new(@browser)
409
+ end
410
+
411
+ # Grabs the text from the message
412
+ # box that appears after doing some
413
+ # action.
414
+ #
415
+ # Use this method to simplify writing
416
+ # Test::Unit asserts
417
+ def alert_message_text
418
+ frm.span(:class=>"success").text
419
+ end
420
+
421
+ def self.page_elements(identifier)
422
+ in_frame(identifier) do |frame|
423
+ link(:check_all, :text=>"Check All", :frame=>frame)
424
+ end
425
+ end
426
+ end
427
+
428
+ # The Page where you are reading a Message.
429
+ module MessageViewMethods
430
+
431
+ # Returns the contents of the message body.
432
+ def message_text
433
+ frm.div(:class=>"textPanel").text
434
+ end
435
+
436
+ def reply
437
+ frm.button(:value=>"Reply").click
438
+ ReplyToMessage.new(@browser)
439
+ end
440
+
441
+ def forward
442
+ frm.button(:value=>"Forward ").click
443
+ ForwardMessage.new(@browser)
444
+ end
445
+
446
+ def received
447
+ frm.link(:text=>"Received").click
448
+ MessagesReceivedList.new(@browser)
449
+ end
450
+
451
+ # Clicks the "Messages" breadcrumb link to return
452
+ # to the top level of Messages. Then instantiates
453
+ # the Messages class.
454
+ def messages
455
+ frm.link(:text=>"Messages").click
456
+ Messages.new(@browser)
457
+ end
458
+
459
+ end
460
+
461
+ # The page for composing a message
462
+ module ComposeMessageMethods
463
+ include PageObject
464
+ def send
465
+ frm.button(:value=>"Send ").click
466
+ Messages.new(@browser)
467
+ end
468
+
469
+ def message_text=(text)
470
+ frm.frame(:id, "compose:pvt_message_body_inputRichText___Frame").td(:id, "xEditingArea").wait_until_present
471
+ sleep 0.3
472
+ frm.frame(:id, "compose:pvt_message_body_inputRichText___Frame").td(:id, "xEditingArea").frame(:index=>0).send_keys(text)
473
+ end
474
+
475
+ def add_attachments
476
+ frm.button(:value=>"Add attachments").click
477
+ MessagesAttachment.new(@browser)
478
+ end
479
+
480
+ def preview
481
+ frm.button(:value=>"Preview").click
482
+ MessagesPreview.new(@browser)
483
+ end
484
+
485
+ def save_draft
486
+ frm.button(:value=>"Save Draft").click
487
+ xxxxxxxxx.new(@browser) #FIXME
488
+ end
489
+
490
+ def self.page_elements(identifier)
491
+ in_frame(identifier) do |frame|
492
+ select_list(:send_to, :id=>"compose:list1", :frame=>frame)
493
+ checkbox(:send_cc, :id=>"compose:send_email_out", :frame=>frame)
494
+ text_field(:subject, :id=>"compose:subject", :frame=>frame)
495
+ end
496
+ end
497
+ end
498
+
499
+ # The page for composing a message
500
+ module ReplyToMessageMethods
501
+ include PageObject
502
+ def send
503
+ frm.button(:value=>"Send ").click
504
+ # Need logic here to ensure the
505
+ # right class gets called...
506
+ if frm.div(:class=>/breadCrumb/).text=~ /Messages.\/.Received/
507
+ MessagesReceivedList.new(@browser)
508
+ else #FIXME
509
+ Messages.new(@browser)
510
+ end
511
+ end
512
+
513
+ def message_text=(text)
514
+ frm.frame(:id, "pvtMsgReply:df_compose_body_inputRichText___Frame").td(:id, "xEditingArea").frame(:index=>0).send_keys(:home)
515
+ frm.frame(:id, "pvtMsgReply:df_compose_body_inputRichText___Frame").td(:id, "xEditingArea").frame(:index=>0).send_keys(text)
516
+ end
517
+
518
+ def add_attachments
519
+ frm.button(:value=>"Add attachments").click
520
+ MessagesAttachment.new(@browser)
521
+ end
522
+
523
+ def preview
524
+ frm.button(:value=>"Preview").click
525
+ MessagesPreview.new(@browser)
526
+ end
527
+
528
+ def save_draft
529
+ frm.button(:value=>"Save Draft").click
530
+ xxxxxxxxx.new(@browser) #FIXME
531
+ end
532
+
533
+ def self.page_elements(identifier)
534
+ in_frame(identifier) do |frame|
535
+ select_list(:select_additional_recipients, :id=>"compose:list1", :frame=>frame)
536
+ checkbox(:send_cc, :id=>"compose:send_email_out", :frame=>frame)
537
+ text_field(:subject, :id=>"compose:subject", :frame=>frame)
538
+ end
539
+ end
540
+ end
541
+
542
+ # The page for composing a message
543
+ module ForwardMessageMethods
544
+
545
+ include PageObject
546
+
547
+ def send
548
+ frm.button(:value=>"Send ").click
549
+ MessagesReceivedList.new(@browser) #FIXME!
550
+ end
551
+
552
+ def message_text=(text)
553
+ frm.frame(:id, "pvtMsgForward:df_compose_body_inputRichText___Frame").td(:id, "xEditingArea").frame(:index=>0).send_keys(:home)
554
+ frm.frame(:id, "pvtMsgForward:df_compose_body_inputRichText___Frame").td(:id, "xEditingArea").frame(:index=>0).send_keys(text)
555
+ end
556
+
557
+ def add_attachments
558
+ frm.button(:value=>"Add attachments").click
559
+ MessagesAttachment.new(@browser)
560
+ end
561
+
562
+ def preview
563
+ frm.button(:value=>"Preview").click
564
+ MessagesPreview.new(@browser)
565
+ end
566
+
567
+ def save_draft
568
+ frm.button(:value=>"Save Draft").click
569
+ xxxxxxxxx.new(@browser) #FIXME
570
+ end
571
+
572
+ def self.page_elements(identifier)
573
+ in_frame(identifier) do |frame|
574
+ select_list(:select_forward_recipients, :id=>"pvtMsgForward:list1", :frame=>frame)
575
+ checkbox(:send_cc, :id=>"compose:send_email_out", :frame=>frame)
576
+ text_field(:subject, :id=>"compose:subject", :frame=>frame)
577
+ end
578
+ end
579
+ end
580
+
581
+
582
+ module MessageDeleteConfirmationMethods
583
+ include PageObject
584
+ def alert_message_text
585
+ frm.span(:class=>"alertMessage").text
586
+ end
587
+
588
+ def delete_messages
589
+ frm.button(:value=>"Delete Message(s)").click
590
+ MessagesDeletedList.new(@browser)
591
+ end
592
+
593
+ #FIXME
594
+ # Want eventually to have a method that will return
595
+ # an array of Message subjects
596
+
597
+ end
598
+
599
+ module MessagesNewFolderMethods
600
+ include PageObject
601
+ def add
602
+ frm.button(:value=>"Add").click
603
+ Messages.new(@browser)
604
+ end
605
+
606
+ def self.page_elements(identifier)
607
+ in_frame(identifier) do |frame|
608
+ text_field(:title, :id=>"pvtMsgFolderAdd:title", :frame=>frame)
609
+ end
610
+ end
611
+ end
612
+
613
+ # The page for editing a Message Folder's settings
614
+ module MessageFolderSettingsMethods
615
+
616
+ def rename_folder
617
+ frm.button(:value=>"Rename Folder").click
618
+ RenameMessageFolder.new(@browser)
619
+ end
620
+
621
+ def add
622
+ frm.button(:value=>"Add").click
623
+ MessagesNewFolder.new(@browser)
624
+ end
625
+
626
+ def delete
627
+ frm.button(:value=>"Delete").click
628
+ FolderDeleteConfirm.new(@browser)
629
+ end
630
+
631
+ end
632
+
633
+ module FolderDeleteConfirmMethods
634
+
635
+ def delete
636
+ frm.button(:value=>"Delete").click
637
+ Messages.new(@browser)
638
+ end
639
+ end