mitchellh-rubyuw 0.4.2 → 0.5.0
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/VERSION +1 -1
- data/lib/myuw/schedule.rb +71 -0
- data/lib/myuw.rb +3 -0
- data/rubyuw.gemspec +11 -2
- data/test/live/schedule_test.rb +28 -0
- data/test/live/test_helper.rb +7 -1
- data/test/mocked/fixture_pages/schedule.html +166 -0
- data/test/mocked/fixture_pages/schedule_diff_credit_row.html +167 -0
- data/test/mocked/fixture_pages/schedule_empty.html +130 -0
- data/test/mocked/fixture_pages/schedule_no_credit_row.html +169 -0
- data/test/mocked/myuw_test.rb +5 -0
- data/test/mocked/schedule_test.rb +132 -0
- metadata +10 -1
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
@@ -0,0 +1,71 @@
|
|
1
|
+
class MyUW
|
2
|
+
# = Synopsis
|
3
|
+
# The Schdule class is responsible for querying a
|
4
|
+
# student's currently registered schedule.
|
5
|
+
class Schedule
|
6
|
+
attr_accessor :myuw
|
7
|
+
attr_reader :courses
|
8
|
+
|
9
|
+
def initialize(myuw=nil)
|
10
|
+
@myuw ||= myuw
|
11
|
+
@courses = nil
|
12
|
+
end
|
13
|
+
|
14
|
+
def credits(force=false)
|
15
|
+
return @credits if @credits && !force
|
16
|
+
schedule(true)
|
17
|
+
@credits
|
18
|
+
end
|
19
|
+
|
20
|
+
def schedule(force=false)
|
21
|
+
raise NotLoggedInError.new("User must be logged in to fetch SLN data") unless @myuw.logged_in?
|
22
|
+
|
23
|
+
# Return the schedule if we precached it at some point
|
24
|
+
# unless we're forcing it
|
25
|
+
return @courses if @courses && !force
|
26
|
+
|
27
|
+
# Grab the schedule page
|
28
|
+
schedule_page = @myuw.browser.get("https://sdb.admin.washington.edu/students/uwnetid/schedule.asp")
|
29
|
+
|
30
|
+
# Grab the info out of it
|
31
|
+
get_courses schedule_page
|
32
|
+
|
33
|
+
# Grab the credits
|
34
|
+
get_credits schedule_page
|
35
|
+
end
|
36
|
+
|
37
|
+
def get_courses(schedule)
|
38
|
+
courses = schedule.search("//table[@border=1 and @cellpadding=3]//tr[@bgcolor='#d0d0d0'][2]/following-sibling::*//td[@align='center']/parent::*")
|
39
|
+
raise InvalidPageError.new(schedule, "No courses were found") if courses.empty?
|
40
|
+
|
41
|
+
data_order = [:sln, :course, :type, :credits, :title, :days, :time, :location, :instructor]
|
42
|
+
|
43
|
+
@courses = []
|
44
|
+
courses.each do |course|
|
45
|
+
data = course.search('td')
|
46
|
+
raise InvalidPageError(schedule, "Something strange happening, found courses but no course data") if data.empty?
|
47
|
+
|
48
|
+
course_info = {}
|
49
|
+
i = 0
|
50
|
+
data.each do |datum|
|
51
|
+
break if data_order[i].nil?
|
52
|
+
|
53
|
+
course_info[data_order[i]] = datum.inner_text.strip.gsub("\302\240", "")
|
54
|
+
i += 1
|
55
|
+
end
|
56
|
+
|
57
|
+
@courses.push(course_info)
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def get_credits(schedule)
|
62
|
+
credits = schedule.search("//table[@border=1 and @cellpadding=3]//tr[@bgcolor='#d0d0d0'][2]/following-sibling::*//td[@colspan=4]")
|
63
|
+
raise InvalidPageError.new(schedule, "No credit row was found") if credits.empty?
|
64
|
+
|
65
|
+
credits_text = credits[0].inner_text.strip.gsub("\302\240", "")
|
66
|
+
raise InvalidPageError.new(schedule, "Credit row in different syntax") unless credits_text =~ /^Total credits: (.+?)$/
|
67
|
+
|
68
|
+
@credits = $1.to_f
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/lib/myuw.rb
CHANGED
@@ -6,12 +6,14 @@ require 'mechanize'
|
|
6
6
|
require 'myuw/errors'
|
7
7
|
require 'myuw/session'
|
8
8
|
require 'myuw/sln'
|
9
|
+
require 'myuw/schedule'
|
9
10
|
|
10
11
|
class MyUW
|
11
12
|
extend Forwardable
|
12
13
|
|
13
14
|
attr_accessor :browser
|
14
15
|
attr_accessor :session
|
16
|
+
attr_accessor :schedule
|
15
17
|
|
16
18
|
def initialize
|
17
19
|
# Initialize the browser instance and mascarade
|
@@ -29,6 +31,7 @@ class MyUW
|
|
29
31
|
|
30
32
|
# Initialize other members
|
31
33
|
@session = Session.new(self)
|
34
|
+
@schedule = Schedule.new(self)
|
32
35
|
end
|
33
36
|
|
34
37
|
# Forward the session methods
|
data/rubyuw.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{rubyuw}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.5.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Mitchell Hashimoto"]
|
@@ -19,9 +19,11 @@ Gem::Specification.new do |s|
|
|
19
19
|
"VERSION",
|
20
20
|
"lib/myuw.rb",
|
21
21
|
"lib/myuw/errors.rb",
|
22
|
+
"lib/myuw/schedule.rb",
|
22
23
|
"lib/myuw/session.rb",
|
23
24
|
"lib/myuw/sln.rb",
|
24
25
|
"rubyuw.gemspec",
|
26
|
+
"test/live/schedule_test.rb",
|
25
27
|
"test/live/session_test.rb",
|
26
28
|
"test/live/sln_test.rb",
|
27
29
|
"test/live/test_helper.rb",
|
@@ -31,10 +33,15 @@ Gem::Specification.new do |s|
|
|
31
33
|
"test/mocked/fixture_pages/no_form_login.html",
|
32
34
|
"test/mocked/fixture_pages/no_login_button.html",
|
33
35
|
"test/mocked/fixture_pages/not_logged_in_relay.html",
|
36
|
+
"test/mocked/fixture_pages/schedule.html",
|
37
|
+
"test/mocked/fixture_pages/schedule_diff_credit_row.html",
|
38
|
+
"test/mocked/fixture_pages/schedule_empty.html",
|
39
|
+
"test/mocked/fixture_pages/schedule_no_credit_row.html",
|
34
40
|
"test/mocked/fixture_pages/sln_does_not_exist.html",
|
35
41
|
"test/mocked/fixture_pages/sln_status.html",
|
36
42
|
"test/mocked/fixture_pages/welcome.html",
|
37
43
|
"test/mocked/myuw_test.rb",
|
44
|
+
"test/mocked/schedule_test.rb",
|
38
45
|
"test/mocked/session_test.rb",
|
39
46
|
"test/mocked/sln_test.rb",
|
40
47
|
"test/mocked/test_helper.rb",
|
@@ -47,10 +54,12 @@ Gem::Specification.new do |s|
|
|
47
54
|
s.rubygems_version = %q{1.3.1}
|
48
55
|
s.summary = %q{Library which provides a ruby interface to the University of Washington student portal.}
|
49
56
|
s.test_files = [
|
50
|
-
"test/live/
|
57
|
+
"test/live/schedule_test.rb",
|
58
|
+
"test/live/session_test.rb",
|
51
59
|
"test/live/sln_test.rb",
|
52
60
|
"test/live/test_helper.rb",
|
53
61
|
"test/mocked/myuw_test.rb",
|
62
|
+
"test/mocked/schedule_test.rb",
|
54
63
|
"test/mocked/session_test.rb",
|
55
64
|
"test/mocked/sln_test.rb",
|
56
65
|
"test/mocked/test_helper.rb"
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
# NOTE: Very little of this can actually be "live tested"
|
4
|
+
# by an automated script. The information is extremely
|
5
|
+
# volatile. We can only test the constants here. The
|
6
|
+
# rest must be "mock tested"
|
7
|
+
|
8
|
+
class LiveScheduleTest < Test::Unit::TestCase
|
9
|
+
context "fetching schedule" do
|
10
|
+
setup do
|
11
|
+
@myuw = MyUW.new
|
12
|
+
@session = @myuw.session
|
13
|
+
@session.email = MYUW_ID
|
14
|
+
@session.password = MYUW_PASSWORD
|
15
|
+
assert @session.login
|
16
|
+
|
17
|
+
@schedule = @myuw.schedule
|
18
|
+
end
|
19
|
+
|
20
|
+
should "throw an exception if not logged in" do
|
21
|
+
@session.logout
|
22
|
+
|
23
|
+
assert_raise MyUW::NotLoggedInError do
|
24
|
+
@schedule.schedule
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/test/live/test_helper.rb
CHANGED
@@ -2,4 +2,10 @@ begin
|
|
2
2
|
require File.join(File.dirname(__FILE__), '..', 'password')
|
3
3
|
rescue LoadError => e
|
4
4
|
abort("Running live tests requires a password.rb file in the test folder with your MyUW credentials.")
|
5
|
-
end
|
5
|
+
end
|
6
|
+
|
7
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'lib', 'myuw')
|
8
|
+
require 'test/unit'
|
9
|
+
require "contest"
|
10
|
+
require "stories"
|
11
|
+
require "mocha"
|
@@ -0,0 +1,166 @@
|
|
1
|
+
<HTML>
|
2
|
+
<HEAD>
|
3
|
+
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
|
4
|
+
<TITLE>Class Schedule</TITLE>
|
5
|
+
<LINK REL="stylesheet" TYPE="text/css" HREF="https://www.washington.edu/home/home.css">
|
6
|
+
</HEAD>
|
7
|
+
<BODY>
|
8
|
+
<table border='0' cellpadding='0' cellspacing='0' width='100%' align='center'>
|
9
|
+
<tr>
|
10
|
+
<td width='100%' class='rpad'>
|
11
|
+
<a href='http://www.washington.edu/' target='_top'><img src='/sdb_library/images/uwlogo150p.gif' border='0' width='150' height='28' alt='University of Washington'></a>
|
12
|
+
</td>
|
13
|
+
<td rowspan='2' valign='bottom'>
|
14
|
+
|
15
|
+
<table border='0' cellpadding='0' cellspacing='0'>
|
16
|
+
<tr><td colspan='2' bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' height='1'></td></tr>
|
17
|
+
<tr>
|
18
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' width='7' height='1'></td>
|
19
|
+
<td nowrap><span class='l1text'>
|
20
|
+
<font color='#9999cc' face='tahoma,sans-serif,arial,helvetica' style='font-size:110%'><b>Student Personal Services</b></font> <span class='noprint'> | <a href='/students/logout.asp'>Logout</a> </span> </span></td>
|
21
|
+
</tr>
|
22
|
+
</table>
|
23
|
+
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<tr>
|
27
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' height='1'></td>
|
28
|
+
</tr>
|
29
|
+
</table>
|
30
|
+
<table border='0' cellpadding='0' cellspacing='0' width='100%'>
|
31
|
+
<tr>
|
32
|
+
<td bgcolor='#e6e6e6'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='5'></TD>
|
33
|
+
</tr>
|
34
|
+
</table>
|
35
|
+
<span class='noprint'>
|
36
|
+
<table border='0' cellpadding='0' cellspacing='0'>
|
37
|
+
<tr>
|
38
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/register.asp' CLASS='barnav'><font color='#333399'>Registration</font></a></td>
|
39
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/grades.asp' CLASS='barnav'><font color='#333399'>Grade Inquiry</font></a></td>
|
40
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/dars.asp' CLASS='barnav'><font color='#333399'>DARS - Degree Audit</font></a></td>
|
41
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/finaidstatus.asp' CLASS='barnav'><font color='#333399'>Financial Aid Status</font></a></td>
|
42
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/sisStudents/uwnetid/tuition.aspx' CLASS='barnav'><font color='#333399'>Tuition Statement</font></a></td>
|
43
|
+
</tr>
|
44
|
+
<tr>
|
45
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/schedule.asp' CLASS='barnav'><font color='#333399'><b>Class Schedule</b></font></a></td>
|
46
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/unofficial.asp' CLASS='barnav'><font color='#333399'>Unofficial Transcript</font></a></td>
|
47
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/address.asp' CLASS='barnav'><font color='#333399'>Change of Address</font></a></td>
|
48
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/emt.asp' CLASS='barnav'><font color='#333399'>Direct Deposit Transfer</font></a></td>
|
49
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/ccpay.asp' CLASS='barnav'><font color='#333399'>Credit Card Payment</font></a></td>
|
50
|
+
</tr>
|
51
|
+
<tr>
|
52
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/vschedule.asp' CLASS='barnav'><font color='#333399'>Visual Schedule</font></a></td>
|
53
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/official.asp' CLASS='barnav'><font color='#333399'>Official Transcript</font></a></td>
|
54
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/op_charges.asp' CLASS='barnav'><font color='#333399'>Insurance/Optional Charges</font></a></td>
|
55
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/shorttermloan.asp' CLASS='barnav'><font color='#333399'>Short-Term Loan</font></a></td>
|
56
|
+
</table>
|
57
|
+
</span>
|
58
|
+
<H1>Class Schedule - Autumn 2009</H1>
|
59
|
+
<P><TABLE BORDER=0 CELLPADDING=2>
|
60
|
+
<TR><TH ALIGN=left>Prepared for:</TH><TD>Some Fake Guy </TD></TR>
|
61
|
+
<TR><TH ALIGN=left>Date prepared:</TH><TD>June 27, 2009</TD></TR>
|
62
|
+
</TABLE>
|
63
|
+
<BR>
|
64
|
+
<TABLE BORDER='1' CELLPADDING='3'>
|
65
|
+
<TR BGCOLOR="#d0d0d0">
|
66
|
+
<TH ROWSPAN=2>SLN</TH>
|
67
|
+
<TH ROWSPAN=2>Course</TH>
|
68
|
+
<TH ROWSPAN=2>Type</TH>
|
69
|
+
<TH ROWSPAN=2>Credits</TH>
|
70
|
+
<TH ROWSPAN=2>Title</TH>
|
71
|
+
<TH COLSPAN=4>Meetings</TH>
|
72
|
+
<TH ROWSPAN="2">More<BR>Information</TH>
|
73
|
+
</TR>
|
74
|
+
<TR BGCOLOR="#d0d0d0">
|
75
|
+
<TH>Days</TH>
|
76
|
+
<TH>Time</TH>
|
77
|
+
<TH>Location</TH>
|
78
|
+
<TH>Instructor</TH>
|
79
|
+
</TR>
|
80
|
+
<TR>
|
81
|
+
<TD ALIGN=center><TT><A HREF='https://sdb.admin.washington.edu/timeschd/UWNetID/sln.asp?QTRYR=AUT+2009&SLN=14368' TARGET="_blank">14368</A> </TD>
|
82
|
+
<TD NOWRAP><TT>HIST 111 A </TD>
|
83
|
+
<td align='center'><tt>LC</td>
|
84
|
+
<TD ALIGN=center><TT>5.0 </TD>
|
85
|
+
<TD><TT><A HREF="http://www.washington.edu/students/crscat/hist.html#hist111" TARGET="_HIST111">THE ANCIENT WORLD</A></TD>
|
86
|
+
<TD NOWRAP><TT>MTWTh</TD>
|
87
|
+
<TD NOWRAP><TT> 130- 220</TD>
|
88
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?SMI" TARGET="_SMI">SMI</A> 120</TD>
|
89
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/icd/S/hist/111jwalker.html" TARGET="_WALKER,JOEL T">WALKER,JOEL T</A></TD>
|
90
|
+
<TD><TT><A HREF='https://catalysttools.washington.edu/workspace/jwalker/6138' TARGET='_new'>Class Web Site</A><BR><A HREF='http://digital.lib.washington.edu/php/currics/service.php?curric=HIST&sln=14368&quarter=autumn&year=2009' TARGET='_new'>Researching? Start here</A> </TT></TD>
|
91
|
+
</TR>
|
92
|
+
<TR>
|
93
|
+
<TD ALIGN=center><TT><A HREF='https://sdb.admin.washington.edu/timeschd/UWNetID/sln.asp?QTRYR=AUT+2009&SLN=14372' TARGET="_blank">14372</A> </TD>
|
94
|
+
<TD NOWRAP><TT>HIST 111 AD </TD>
|
95
|
+
<td align='center'><tt>QZ</td>
|
96
|
+
<TD ALIGN=center><TT>0.0 </TD>
|
97
|
+
<TD><TT><A HREF="http://www.washington.edu/students/crscat/hist.html#hist111" TARGET="_HIST111">THE ANCIENT WORLD</A></TD>
|
98
|
+
<TD NOWRAP><TT>F</TD>
|
99
|
+
<TD NOWRAP><TT>1130-1220</TD>
|
100
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?CDH" TARGET="_CDH">CDH</A> 223B</TD>
|
101
|
+
<TD NOWRAP><TT> </TD>
|
102
|
+
<TD><TT> </TT></TD>
|
103
|
+
</TR>
|
104
|
+
<TR>
|
105
|
+
<TD ALIGN=center><TT><A HREF='https://sdb.admin.washington.edu/timeschd/UWNetID/sln.asp?QTRYR=AUT+2009&SLN=12271' TARGET="_blank">12271</A> </TD>
|
106
|
+
<TD NOWRAP><TT>CSE 322 A </TD>
|
107
|
+
<td align='center'><tt>LC</td>
|
108
|
+
<TD ALIGN=center><TT>3.0 </TD>
|
109
|
+
<TD><TT><A HREF="http://www.washington.edu/students/crscat/cse.html#cse322" TARGET="_CSE322">INTRO FORMAL MODELS</A></TD>
|
110
|
+
<TD NOWRAP><TT>MWF</TD>
|
111
|
+
<TD NOWRAP><TT> 930-1020</TD>
|
112
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?EEB" TARGET="_EEB">EEB</A> 037</TD>
|
113
|
+
<TD NOWRAP><TT>BEAME,PAUL W.</TD>
|
114
|
+
<TD><TT><A HREF='http://digital.lib.washington.edu/php/currics/service.php?curric=CSE&sln=12271&quarter=autumn&year=2009' TARGET='_new'>Researching? Start here</A> </TT></TD>
|
115
|
+
</TR>
|
116
|
+
<TR></TR>
|
117
|
+
<TR>
|
118
|
+
<TD ALIGN=right COLSPAN=4><TT>Total credits: 8.0 </TD>
|
119
|
+
</TR>
|
120
|
+
</TABLE>
|
121
|
+
<TABLE BORDER="0" WIDTH="100%">
|
122
|
+
<TR><TD><BIG><A HREF="https://sdb.admin.washington.edu/textbooks/query.asp?qtr=Autumn&sln1=14368&sln2=14372&sln3=12271" TARGET="_tb">Display Textbooks</A></BIG></TD>
|
123
|
+
<td> <BIG> <A HREF="https://sdb.admin.washington.edu/students/UWNetID/examschedule.asp?Q=4">Display Final Exam Schedule</A></BIG></TD></TR></TABLE>
|
124
|
+
<span class='noprint'><p><center>
|
125
|
+
<table border='0' cellpadding='4' bgcolor='yellow' width='80%'><tr><td>
|
126
|
+
|
127
|
+
<table border='0' cellpadding='5' cellspacing='0' bgcolor='white' width='100%'><tr>
|
128
|
+
<td><img src='/sdb_library/images/caution.gif' width='30' height='30' hspace='10'></td>
|
129
|
+
<td>
|
130
|
+
To protect your privacy and prevent unauthorized use,
|
131
|
+
<a href='http://www.washington.edu/computing/weblogin/logout.html' target='_logout'>close
|
132
|
+
<b>ALL</b> of your web browser windows</a>
|
133
|
+
and web-enabled applications when you finish.
|
134
|
+
</td>
|
135
|
+
</tr></table>
|
136
|
+
|
137
|
+
</td></tr></table>
|
138
|
+
</center></p></span>
|
139
|
+
<P></P>
|
140
|
+
<table border='0' cellpadding='0' cellspacing='0' align='center' width='100%'>
|
141
|
+
<tr>
|
142
|
+
<td rowspan='2'>
|
143
|
+
<a href='http://www.washington.edu/'><img src='/sdb_library/images/footersealW.gif' border='0' height='48' width='48' hspace='5' vspace='7' alt='UW Seal'></a>
|
144
|
+
</td>
|
145
|
+
<td rowspan='3' bgcolor='#666666' width='5'><img src='/sdb_library/images/1px_transparent.gif' width='7' height='1'></td>
|
146
|
+
<td colspan='2' bgcolor='#666666' height='1'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='1'></td>
|
147
|
+
</tr><tr>
|
148
|
+
<td width='100%'>
|
149
|
+
<table border='0' width='100%'>
|
150
|
+
<tr>
|
151
|
+
<td valign='top'><address>
|
152
|
+
Office of the Registrar<br>
|
153
|
+
regoff@u.washington.edu<br>
|
154
|
+
June 27, 2009
|
155
|
+
</address>
|
156
|
+
</td>
|
157
|
+
</tr>
|
158
|
+
</table>
|
159
|
+
</td>
|
160
|
+
</tr><tr height='1'>
|
161
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='1'></td>
|
162
|
+
</tr>
|
163
|
+
</table>
|
164
|
+
|
165
|
+
</BODY>
|
166
|
+
</HTML>
|
@@ -0,0 +1,167 @@
|
|
1
|
+
<HTML>
|
2
|
+
<HEAD>
|
3
|
+
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
|
4
|
+
<TITLE>Class Schedule</TITLE>
|
5
|
+
<LINK REL="stylesheet" TYPE="text/css" HREF="https://www.washington.edu/home/home.css">
|
6
|
+
</HEAD>
|
7
|
+
<BODY>
|
8
|
+
<table border='0' cellpadding='0' cellspacing='0' width='100%' align='center'>
|
9
|
+
<tr>
|
10
|
+
<td width='100%' class='rpad'>
|
11
|
+
<a href='http://www.washington.edu/' target='_top'><img src='/sdb_library/images/uwlogo150p.gif' border='0' width='150' height='28' alt='University of Washington'></a>
|
12
|
+
</td>
|
13
|
+
<td rowspan='2' valign='bottom'>
|
14
|
+
|
15
|
+
<table border='0' cellpadding='0' cellspacing='0'>
|
16
|
+
<tr><td colspan='2' bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' height='1'></td></tr>
|
17
|
+
<tr>
|
18
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' width='7' height='1'></td>
|
19
|
+
<td nowrap><span class='l1text'>
|
20
|
+
<font color='#9999cc' face='tahoma,sans-serif,arial,helvetica' style='font-size:110%'><b>Student Personal Services</b></font> <span class='noprint'> | <a href='/students/logout.asp'>Logout</a> </span> </span></td>
|
21
|
+
</tr>
|
22
|
+
</table>
|
23
|
+
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<tr>
|
27
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' height='1'></td>
|
28
|
+
</tr>
|
29
|
+
</table>
|
30
|
+
<table border='0' cellpadding='0' cellspacing='0' width='100%'>
|
31
|
+
<tr>
|
32
|
+
<td bgcolor='#e6e6e6'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='5'></TD>
|
33
|
+
</tr>
|
34
|
+
</table>
|
35
|
+
<span class='noprint'>
|
36
|
+
<table border='0' cellpadding='0' cellspacing='0'>
|
37
|
+
<tr>
|
38
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/register.asp' CLASS='barnav'><font color='#333399'>Registration</font></a></td>
|
39
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/grades.asp' CLASS='barnav'><font color='#333399'>Grade Inquiry</font></a></td>
|
40
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/dars.asp' CLASS='barnav'><font color='#333399'>DARS - Degree Audit</font></a></td>
|
41
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/finaidstatus.asp' CLASS='barnav'><font color='#333399'>Financial Aid Status</font></a></td>
|
42
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/sisStudents/uwnetid/tuition.aspx' CLASS='barnav'><font color='#333399'>Tuition Statement</font></a></td>
|
43
|
+
</tr>
|
44
|
+
<tr>
|
45
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/schedule.asp' CLASS='barnav'><font color='#333399'><b>Class Schedule</b></font></a></td>
|
46
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/unofficial.asp' CLASS='barnav'><font color='#333399'>Unofficial Transcript</font></a></td>
|
47
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/address.asp' CLASS='barnav'><font color='#333399'>Change of Address</font></a></td>
|
48
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/emt.asp' CLASS='barnav'><font color='#333399'>Direct Deposit Transfer</font></a></td>
|
49
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/ccpay.asp' CLASS='barnav'><font color='#333399'>Credit Card Payment</font></a></td>
|
50
|
+
</tr>
|
51
|
+
<tr>
|
52
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/vschedule.asp' CLASS='barnav'><font color='#333399'>Visual Schedule</font></a></td>
|
53
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/official.asp' CLASS='barnav'><font color='#333399'>Official Transcript</font></a></td>
|
54
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/op_charges.asp' CLASS='barnav'><font color='#333399'>Insurance/Optional Charges</font></a></td>
|
55
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/shorttermloan.asp' CLASS='barnav'><font color='#333399'>Short-Term Loan</font></a></td>
|
56
|
+
</table>
|
57
|
+
</span>
|
58
|
+
<H1>Class Schedule - Autumn 2009</H1>
|
59
|
+
<P><TABLE BORDER=0 CELLPADDING=2>
|
60
|
+
<TR><TH ALIGN=left>Prepared for:</TH><TD>Some Fake Guy </TD></TR>
|
61
|
+
<TR><TH ALIGN=left>Date prepared:</TH><TD>June 27, 2009</TD></TR>
|
62
|
+
</TABLE>
|
63
|
+
<BR>
|
64
|
+
<TABLE BORDER='1' CELLPADDING='3'>
|
65
|
+
<TR BGCOLOR="#d0d0d0">
|
66
|
+
<TH ROWSPAN=2>SLN</TH>
|
67
|
+
<TH ROWSPAN=2>Course</TH>
|
68
|
+
<TH ROWSPAN=2>Type</TH>
|
69
|
+
<TH ROWSPAN=2>Credits</TH>
|
70
|
+
<TH ROWSPAN=2>Title</TH>
|
71
|
+
<TH COLSPAN=4>Meetings</TH>
|
72
|
+
<TH ROWSPAN="2">More<BR>Information</TH>
|
73
|
+
</TR>
|
74
|
+
<TR BGCOLOR="#d0d0d0">
|
75
|
+
<TH>Days</TH>
|
76
|
+
<TH>Time</TH>
|
77
|
+
<TH>Location</TH>
|
78
|
+
<TH>Instructor</TH>
|
79
|
+
</TR>
|
80
|
+
<TR>
|
81
|
+
<TD ALIGN=center><TT><A HREF='https://sdb.admin.washington.edu/timeschd/UWNetID/sln.asp?QTRYR=AUT+2009&SLN=14368' TARGET="_blank">14368</A> </TD>
|
82
|
+
<TD NOWRAP><TT>HIST 111 A </TD>
|
83
|
+
<td align='center'><tt>LC</td>
|
84
|
+
<TD ALIGN=center><TT>5.0 </TD>
|
85
|
+
<TD><TT><A HREF="http://www.washington.edu/students/crscat/hist.html#hist111" TARGET="_HIST111">THE ANCIENT WORLD</A></TD>
|
86
|
+
<TD NOWRAP><TT>MTWTh</TD>
|
87
|
+
<TD NOWRAP><TT> 130- 220</TD>
|
88
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?SMI" TARGET="_SMI">SMI</A> 120</TD>
|
89
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/icd/S/hist/111jwalker.html" TARGET="_WALKER,JOEL T">WALKER,JOEL T</A></TD>
|
90
|
+
<TD><TT><A HREF='https://catalysttools.washington.edu/workspace/jwalker/6138' TARGET='_new'>Class Web Site</A><BR><A HREF='http://digital.lib.washington.edu/php/currics/service.php?curric=HIST&sln=14368&quarter=autumn&year=2009' TARGET='_new'>Researching? Start here</A> </TT></TD>
|
91
|
+
</TR>
|
92
|
+
<TR>
|
93
|
+
<TD ALIGN=center><TT><A HREF='https://sdb.admin.washington.edu/timeschd/UWNetID/sln.asp?QTRYR=AUT+2009&SLN=14372' TARGET="_blank">14372</A> </TD>
|
94
|
+
<TD NOWRAP><TT>HIST 111 AD </TD>
|
95
|
+
<td align='center'><tt>QZ</td>
|
96
|
+
<TD ALIGN=center><TT>0.0 </TD>
|
97
|
+
<TD><TT><A HREF="http://www.washington.edu/students/crscat/hist.html#hist111" TARGET="_HIST111">THE ANCIENT WORLD</A></TD>
|
98
|
+
<TD NOWRAP><TT>F</TD>
|
99
|
+
<TD NOWRAP><TT>1130-1220</TD>
|
100
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?CDH" TARGET="_CDH">CDH</A> 223B</TD>
|
101
|
+
<TD NOWRAP><TT> </TD>
|
102
|
+
<TD><TT> </TT></TD>
|
103
|
+
</TR>
|
104
|
+
<TR>
|
105
|
+
<TD ALIGN=center><TT><A HREF='https://sdb.admin.washington.edu/timeschd/UWNetID/sln.asp?QTRYR=AUT+2009&SLN=12271' TARGET="_blank">12271</A> </TD>
|
106
|
+
<TD NOWRAP><TT>CSE 322 A </TD>
|
107
|
+
<td align='center'><tt>LC</td>
|
108
|
+
<TD ALIGN=center><TT>3.0 </TD>
|
109
|
+
<TD><TT><A HREF="http://www.washington.edu/students/crscat/cse.html#cse322" TARGET="_CSE322">INTRO FORMAL MODELS</A></TD>
|
110
|
+
<TD NOWRAP><TT>MWF</TD>
|
111
|
+
<TD NOWRAP><TT> 930-1020</TD>
|
112
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?EEB" TARGET="_EEB">EEB</A> 037</TD>
|
113
|
+
<TD NOWRAP><TT>BEAME,PAUL W.</TD>
|
114
|
+
<TD><TT><A HREF='http://digital.lib.washington.edu/php/currics/service.php?curric=CSE&sln=12271&quarter=autumn&year=2009' TARGET='_new'>Researching? Start here</A> </TT></TD>
|
115
|
+
</TR>
|
116
|
+
<TR></TR>
|
117
|
+
<TR>
|
118
|
+
<!-- MODIFIED SYNTAX BELOW TO FAIL TEST -->
|
119
|
+
<TD ALIGN=right COLSPAN=4><TT>Total creditos: 8.0 </TD>
|
120
|
+
</TR>
|
121
|
+
</TABLE>
|
122
|
+
<TABLE BORDER="0" WIDTH="100%">
|
123
|
+
<TR><TD><BIG><A HREF="https://sdb.admin.washington.edu/textbooks/query.asp?qtr=Autumn&sln1=14368&sln2=14372&sln3=12271" TARGET="_tb">Display Textbooks</A></BIG></TD>
|
124
|
+
<td> <BIG> <A HREF="https://sdb.admin.washington.edu/students/UWNetID/examschedule.asp?Q=4">Display Final Exam Schedule</A></BIG></TD></TR></TABLE>
|
125
|
+
<span class='noprint'><p><center>
|
126
|
+
<table border='0' cellpadding='4' bgcolor='yellow' width='80%'><tr><td>
|
127
|
+
|
128
|
+
<table border='0' cellpadding='5' cellspacing='0' bgcolor='white' width='100%'><tr>
|
129
|
+
<td><img src='/sdb_library/images/caution.gif' width='30' height='30' hspace='10'></td>
|
130
|
+
<td>
|
131
|
+
To protect your privacy and prevent unauthorized use,
|
132
|
+
<a href='http://www.washington.edu/computing/weblogin/logout.html' target='_logout'>close
|
133
|
+
<b>ALL</b> of your web browser windows</a>
|
134
|
+
and web-enabled applications when you finish.
|
135
|
+
</td>
|
136
|
+
</tr></table>
|
137
|
+
|
138
|
+
</td></tr></table>
|
139
|
+
</center></p></span>
|
140
|
+
<P></P>
|
141
|
+
<table border='0' cellpadding='0' cellspacing='0' align='center' width='100%'>
|
142
|
+
<tr>
|
143
|
+
<td rowspan='2'>
|
144
|
+
<a href='http://www.washington.edu/'><img src='/sdb_library/images/footersealW.gif' border='0' height='48' width='48' hspace='5' vspace='7' alt='UW Seal'></a>
|
145
|
+
</td>
|
146
|
+
<td rowspan='3' bgcolor='#666666' width='5'><img src='/sdb_library/images/1px_transparent.gif' width='7' height='1'></td>
|
147
|
+
<td colspan='2' bgcolor='#666666' height='1'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='1'></td>
|
148
|
+
</tr><tr>
|
149
|
+
<td width='100%'>
|
150
|
+
<table border='0' width='100%'>
|
151
|
+
<tr>
|
152
|
+
<td valign='top'><address>
|
153
|
+
Office of the Registrar<br>
|
154
|
+
regoff@u.washington.edu<br>
|
155
|
+
June 27, 2009
|
156
|
+
</address>
|
157
|
+
</td>
|
158
|
+
</tr>
|
159
|
+
</table>
|
160
|
+
</td>
|
161
|
+
</tr><tr height='1'>
|
162
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='1'></td>
|
163
|
+
</tr>
|
164
|
+
</table>
|
165
|
+
|
166
|
+
</BODY>
|
167
|
+
</HTML>
|
@@ -0,0 +1,130 @@
|
|
1
|
+
<HTML>
|
2
|
+
<HEAD>
|
3
|
+
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
|
4
|
+
<TITLE>Class Schedule</TITLE>
|
5
|
+
<LINK REL="stylesheet" TYPE="text/css" HREF="https://www.washington.edu/home/home.css">
|
6
|
+
</HEAD>
|
7
|
+
<BODY>
|
8
|
+
<table border='0' cellpadding='0' cellspacing='0' width='100%' align='center'>
|
9
|
+
<tr>
|
10
|
+
<td width='100%' class='rpad'>
|
11
|
+
<a href='http://www.washington.edu/' target='_top'><img src='/sdb_library/images/uwlogo150p.gif' border='0' width='150' height='28' alt='University of Washington'></a>
|
12
|
+
</td>
|
13
|
+
<td rowspan='2' valign='bottom'>
|
14
|
+
|
15
|
+
<table border='0' cellpadding='0' cellspacing='0'>
|
16
|
+
<tr><td colspan='2' bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' height='1'></td></tr>
|
17
|
+
<tr>
|
18
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' width='7' height='1'></td>
|
19
|
+
<td nowrap><span class='l1text'>
|
20
|
+
<font color='#9999cc' face='tahoma,sans-serif,arial,helvetica' style='font-size:110%'><b>Student Personal Services</b></font> <span class='noprint'> | <a href='/students/logout.asp'>Logout</a> </span> </span></td>
|
21
|
+
</tr>
|
22
|
+
</table>
|
23
|
+
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<tr>
|
27
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' height='1'></td>
|
28
|
+
</tr>
|
29
|
+
</table>
|
30
|
+
<table border='0' cellpadding='0' cellspacing='0' width='100%'>
|
31
|
+
<tr>
|
32
|
+
<td bgcolor='#e6e6e6'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='5'></TD>
|
33
|
+
</tr>
|
34
|
+
</table>
|
35
|
+
<span class='noprint'>
|
36
|
+
<table border='0' cellpadding='0' cellspacing='0'>
|
37
|
+
<tr>
|
38
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/register.asp' CLASS='barnav'><font color='#333399'>Registration</font></a></td>
|
39
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/grades.asp' CLASS='barnav'><font color='#333399'>Grade Inquiry</font></a></td>
|
40
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/dars.asp' CLASS='barnav'><font color='#333399'>DARS - Degree Audit</font></a></td>
|
41
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/finaidstatus.asp' CLASS='barnav'><font color='#333399'>Financial Aid Status</font></a></td>
|
42
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/sisStudents/uwnetid/tuition.aspx' CLASS='barnav'><font color='#333399'>Tuition Statement</font></a></td>
|
43
|
+
</tr>
|
44
|
+
<tr>
|
45
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/schedule.asp' CLASS='barnav'><font color='#333399'><b>Class Schedule</b></font></a></td>
|
46
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/unofficial.asp' CLASS='barnav'><font color='#333399'>Unofficial Transcript</font></a></td>
|
47
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/address.asp' CLASS='barnav'><font color='#333399'>Change of Address</font></a></td>
|
48
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/emt.asp' CLASS='barnav'><font color='#333399'>Direct Deposit Transfer</font></a></td>
|
49
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/ccpay.asp' CLASS='barnav'><font color='#333399'>Credit Card Payment</font></a></td>
|
50
|
+
</tr>
|
51
|
+
<tr>
|
52
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/vschedule.asp' CLASS='barnav'><font color='#333399'>Visual Schedule</font></a></td>
|
53
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/official.asp' CLASS='barnav'><font color='#333399'>Official Transcript</font></a></td>
|
54
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/op_charges.asp' CLASS='barnav'><font color='#333399'>Insurance/Optional Charges</font></a></td>
|
55
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/shorttermloan.asp' CLASS='barnav'><font color='#333399'>Short-Term Loan</font></a></td>
|
56
|
+
</table>
|
57
|
+
</span>
|
58
|
+
<H1>Class Schedule - Autumn 2009</H1>
|
59
|
+
<P><TABLE BORDER=0 CELLPADDING=2>
|
60
|
+
<TR><TH ALIGN=left>Prepared for:</TH><TD>Some Fake Guy </TD></TR>
|
61
|
+
<TR><TH ALIGN=left>Date prepared:</TH><TD>June 27, 2009</TD></TR>
|
62
|
+
</TABLE>
|
63
|
+
<BR>
|
64
|
+
<TABLE BORDER='1' CELLPADDING='3'>
|
65
|
+
<TR BGCOLOR="#d0d0d0">
|
66
|
+
<TH ROWSPAN=2>SLN</TH>
|
67
|
+
<TH ROWSPAN=2>Course</TH>
|
68
|
+
<TH ROWSPAN=2>Type</TH>
|
69
|
+
<TH ROWSPAN=2>Credits</TH>
|
70
|
+
<TH ROWSPAN=2>Title</TH>
|
71
|
+
<TH COLSPAN=4>Meetings</TH>
|
72
|
+
<TH ROWSPAN="2">More<BR>Information</TH>
|
73
|
+
</TR>
|
74
|
+
<TR BGCOLOR="#d0d0d0">
|
75
|
+
<TH>Days</TH>
|
76
|
+
<TH>Time</TH>
|
77
|
+
<TH>Location</TH>
|
78
|
+
<TH>Instructor</TH>
|
79
|
+
</TR>
|
80
|
+
<TR></TR>
|
81
|
+
<TR>
|
82
|
+
<TD ALIGN=right COLSPAN=4><TT>Total credits: 8.0 </TD>
|
83
|
+
</TR>
|
84
|
+
</TABLE>
|
85
|
+
<TABLE BORDER="0" WIDTH="100%">
|
86
|
+
<TR><TD><BIG><A HREF="https://sdb.admin.washington.edu/textbooks/query.asp?qtr=Autumn&sln1=14368&sln2=14372&sln3=12271" TARGET="_tb">Display Textbooks</A></BIG></TD>
|
87
|
+
<td> <BIG> <A HREF="https://sdb.admin.washington.edu/students/UWNetID/examschedule.asp?Q=4">Display Final Exam Schedule</A></BIG></TD></TR></TABLE>
|
88
|
+
<span class='noprint'><p><center>
|
89
|
+
<table border='0' cellpadding='4' bgcolor='yellow' width='80%'><tr><td>
|
90
|
+
|
91
|
+
<table border='0' cellpadding='5' cellspacing='0' bgcolor='white' width='100%'><tr>
|
92
|
+
<td><img src='/sdb_library/images/caution.gif' width='30' height='30' hspace='10'></td>
|
93
|
+
<td>
|
94
|
+
To protect your privacy and prevent unauthorized use,
|
95
|
+
<a href='http://www.washington.edu/computing/weblogin/logout.html' target='_logout'>close
|
96
|
+
<b>ALL</b> of your web browser windows</a>
|
97
|
+
and web-enabled applications when you finish.
|
98
|
+
</td>
|
99
|
+
</tr></table>
|
100
|
+
|
101
|
+
</td></tr></table>
|
102
|
+
</center></p></span>
|
103
|
+
<P></P>
|
104
|
+
<table border='0' cellpadding='0' cellspacing='0' align='center' width='100%'>
|
105
|
+
<tr>
|
106
|
+
<td rowspan='2'>
|
107
|
+
<a href='http://www.washington.edu/'><img src='/sdb_library/images/footersealW.gif' border='0' height='48' width='48' hspace='5' vspace='7' alt='UW Seal'></a>
|
108
|
+
</td>
|
109
|
+
<td rowspan='3' bgcolor='#666666' width='5'><img src='/sdb_library/images/1px_transparent.gif' width='7' height='1'></td>
|
110
|
+
<td colspan='2' bgcolor='#666666' height='1'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='1'></td>
|
111
|
+
</tr><tr>
|
112
|
+
<td width='100%'>
|
113
|
+
<table border='0' width='100%'>
|
114
|
+
<tr>
|
115
|
+
<td valign='top'><address>
|
116
|
+
Office of the Registrar<br>
|
117
|
+
regoff@u.washington.edu<br>
|
118
|
+
June 27, 2009
|
119
|
+
</address>
|
120
|
+
</td>
|
121
|
+
</tr>
|
122
|
+
</table>
|
123
|
+
</td>
|
124
|
+
</tr><tr height='1'>
|
125
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='1'></td>
|
126
|
+
</tr>
|
127
|
+
</table>
|
128
|
+
|
129
|
+
</BODY>
|
130
|
+
</HTML>
|
@@ -0,0 +1,169 @@
|
|
1
|
+
<HTML>
|
2
|
+
<HEAD>
|
3
|
+
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
|
4
|
+
<TITLE>Class Schedule</TITLE>
|
5
|
+
<LINK REL="stylesheet" TYPE="text/css" HREF="https://www.washington.edu/home/home.css">
|
6
|
+
</HEAD>
|
7
|
+
<BODY>
|
8
|
+
<table border='0' cellpadding='0' cellspacing='0' width='100%' align='center'>
|
9
|
+
<tr>
|
10
|
+
<td width='100%' class='rpad'>
|
11
|
+
<a href='http://www.washington.edu/' target='_top'><img src='/sdb_library/images/uwlogo150p.gif' border='0' width='150' height='28' alt='University of Washington'></a>
|
12
|
+
</td>
|
13
|
+
<td rowspan='2' valign='bottom'>
|
14
|
+
|
15
|
+
<table border='0' cellpadding='0' cellspacing='0'>
|
16
|
+
<tr><td colspan='2' bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' height='1'></td></tr>
|
17
|
+
<tr>
|
18
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' width='7' height='1'></td>
|
19
|
+
<td nowrap><span class='l1text'>
|
20
|
+
<font color='#9999cc' face='tahoma,sans-serif,arial,helvetica' style='font-size:110%'><b>Student Personal Services</b></font> <span class='noprint'> | <a href='/students/logout.asp'>Logout</a> </span> </span></td>
|
21
|
+
</tr>
|
22
|
+
</table>
|
23
|
+
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<tr>
|
27
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' height='1'></td>
|
28
|
+
</tr>
|
29
|
+
</table>
|
30
|
+
<table border='0' cellpadding='0' cellspacing='0' width='100%'>
|
31
|
+
<tr>
|
32
|
+
<td bgcolor='#e6e6e6'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='5'></TD>
|
33
|
+
</tr>
|
34
|
+
</table>
|
35
|
+
<span class='noprint'>
|
36
|
+
<table border='0' cellpadding='0' cellspacing='0'>
|
37
|
+
<tr>
|
38
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/register.asp' CLASS='barnav'><font color='#333399'>Registration</font></a></td>
|
39
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/grades.asp' CLASS='barnav'><font color='#333399'>Grade Inquiry</font></a></td>
|
40
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/dars.asp' CLASS='barnav'><font color='#333399'>DARS - Degree Audit</font></a></td>
|
41
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/finaidstatus.asp' CLASS='barnav'><font color='#333399'>Financial Aid Status</font></a></td>
|
42
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/sisStudents/uwnetid/tuition.aspx' CLASS='barnav'><font color='#333399'>Tuition Statement</font></a></td>
|
43
|
+
</tr>
|
44
|
+
<tr>
|
45
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/schedule.asp' CLASS='barnav'><font color='#333399'><b>Class Schedule</b></font></a></td>
|
46
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/unofficial.asp' CLASS='barnav'><font color='#333399'>Unofficial Transcript</font></a></td>
|
47
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/address.asp' CLASS='barnav'><font color='#333399'>Change of Address</font></a></td>
|
48
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/emt.asp' CLASS='barnav'><font color='#333399'>Direct Deposit Transfer</font></a></td>
|
49
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/ccpay.asp' CLASS='barnav'><font color='#333399'>Credit Card Payment</font></a></td>
|
50
|
+
</tr>
|
51
|
+
<tr>
|
52
|
+
<td nowrap>· <a href='https://sdb.admin.washington.edu/students/uwnetid/vschedule.asp' CLASS='barnav'><font color='#333399'>Visual Schedule</font></a></td>
|
53
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/official.asp' CLASS='barnav'><font color='#333399'>Official Transcript</font></a></td>
|
54
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/op_charges.asp' CLASS='barnav'><font color='#333399'>Insurance/Optional Charges</font></a></td>
|
55
|
+
<td nowrap> · <a href='https://sdb.admin.washington.edu/students/uwnetid/shorttermloan.asp' CLASS='barnav'><font color='#333399'>Short-Term Loan</font></a></td>
|
56
|
+
</table>
|
57
|
+
</span>
|
58
|
+
<H1>Class Schedule - Autumn 2009</H1>
|
59
|
+
<P><TABLE BORDER=0 CELLPADDING=2>
|
60
|
+
<TR><TH ALIGN=left>Prepared for:</TH><TD>Some Fake Guy </TD></TR>
|
61
|
+
<TR><TH ALIGN=left>Date prepared:</TH><TD>June 27, 2009</TD></TR>
|
62
|
+
</TABLE>
|
63
|
+
<BR>
|
64
|
+
<TABLE BORDER='1' CELLPADDING='3'>
|
65
|
+
<TR BGCOLOR="#d0d0d0">
|
66
|
+
<TH ROWSPAN=2>SLN</TH>
|
67
|
+
<TH ROWSPAN=2>Course</TH>
|
68
|
+
<TH ROWSPAN=2>Type</TH>
|
69
|
+
<TH ROWSPAN=2>Credits</TH>
|
70
|
+
<TH ROWSPAN=2>Title</TH>
|
71
|
+
<TH COLSPAN=4>Meetings</TH>
|
72
|
+
<TH ROWSPAN="2">More<BR>Information</TH>
|
73
|
+
</TR>
|
74
|
+
<TR BGCOLOR="#d0d0d0">
|
75
|
+
<TH>Days</TH>
|
76
|
+
<TH>Time</TH>
|
77
|
+
<TH>Location</TH>
|
78
|
+
<TH>Instructor</TH>
|
79
|
+
</TR>
|
80
|
+
<TR>
|
81
|
+
<TD ALIGN=center><TT><A HREF='https://sdb.admin.washington.edu/timeschd/UWNetID/sln.asp?QTRYR=AUT+2009&SLN=14368' TARGET="_blank">14368</A> </TD>
|
82
|
+
<TD NOWRAP><TT>HIST 111 A </TD>
|
83
|
+
<td align='center'><tt>LC</td>
|
84
|
+
<TD ALIGN=center><TT>5.0 </TD>
|
85
|
+
<TD><TT><A HREF="http://www.washington.edu/students/crscat/hist.html#hist111" TARGET="_HIST111">THE ANCIENT WORLD</A></TD>
|
86
|
+
<TD NOWRAP><TT>MTWTh</TD>
|
87
|
+
<TD NOWRAP><TT> 130- 220</TD>
|
88
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?SMI" TARGET="_SMI">SMI</A> 120</TD>
|
89
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/icd/S/hist/111jwalker.html" TARGET="_WALKER,JOEL T">WALKER,JOEL T</A></TD>
|
90
|
+
<TD><TT><A HREF='https://catalysttools.washington.edu/workspace/jwalker/6138' TARGET='_new'>Class Web Site</A><BR><A HREF='http://digital.lib.washington.edu/php/currics/service.php?curric=HIST&sln=14368&quarter=autumn&year=2009' TARGET='_new'>Researching? Start here</A> </TT></TD>
|
91
|
+
</TR>
|
92
|
+
<TR>
|
93
|
+
<TD ALIGN=center><TT><A HREF='https://sdb.admin.washington.edu/timeschd/UWNetID/sln.asp?QTRYR=AUT+2009&SLN=14372' TARGET="_blank">14372</A> </TD>
|
94
|
+
<TD NOWRAP><TT>HIST 111 AD </TD>
|
95
|
+
<td align='center'><tt>QZ</td>
|
96
|
+
<TD ALIGN=center><TT>0.0 </TD>
|
97
|
+
<TD><TT><A HREF="http://www.washington.edu/students/crscat/hist.html#hist111" TARGET="_HIST111">THE ANCIENT WORLD</A></TD>
|
98
|
+
<TD NOWRAP><TT>F</TD>
|
99
|
+
<TD NOWRAP><TT>1130-1220</TD>
|
100
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?CDH" TARGET="_CDH">CDH</A> 223B</TD>
|
101
|
+
<TD NOWRAP><TT> </TD>
|
102
|
+
<TD><TT> </TT></TD>
|
103
|
+
</TR>
|
104
|
+
<TR>
|
105
|
+
<TD ALIGN=center><TT><A HREF='https://sdb.admin.washington.edu/timeschd/UWNetID/sln.asp?QTRYR=AUT+2009&SLN=12271' TARGET="_blank">12271</A> </TD>
|
106
|
+
<TD NOWRAP><TT>CSE 322 A </TD>
|
107
|
+
<td align='center'><tt>LC</td>
|
108
|
+
<TD ALIGN=center><TT>3.0 </TD>
|
109
|
+
<TD><TT><A HREF="http://www.washington.edu/students/crscat/cse.html#cse322" TARGET="_CSE322">INTRO FORMAL MODELS</A></TD>
|
110
|
+
<TD NOWRAP><TT>MWF</TD>
|
111
|
+
<TD NOWRAP><TT> 930-1020</TD>
|
112
|
+
<TD NOWRAP><TT><A HREF="http://www.washington.edu/students/maps/map.cgi?EEB" TARGET="_EEB">EEB</A> 037</TD>
|
113
|
+
<TD NOWRAP><TT>BEAME,PAUL W.</TD>
|
114
|
+
<TD><TT><A HREF='http://digital.lib.washington.edu/php/currics/service.php?curric=CSE&sln=12271&quarter=autumn&year=2009' TARGET='_new'>Researching? Start here</A> </TT></TD>
|
115
|
+
</TR>
|
116
|
+
<TR></TR>
|
117
|
+
<TR>
|
118
|
+
<!--
|
119
|
+
Commented out for test
|
120
|
+
<TD ALIGN=right COLSPAN=4><TT>Total credits: 8.0 </TD>
|
121
|
+
-->
|
122
|
+
</TR>
|
123
|
+
</TABLE>
|
124
|
+
<TABLE BORDER="0" WIDTH="100%">
|
125
|
+
<TR><TD><BIG><A HREF="https://sdb.admin.washington.edu/textbooks/query.asp?qtr=Autumn&sln1=14368&sln2=14372&sln3=12271" TARGET="_tb">Display Textbooks</A></BIG></TD>
|
126
|
+
<td> <BIG> <A HREF="https://sdb.admin.washington.edu/students/UWNetID/examschedule.asp?Q=4">Display Final Exam Schedule</A></BIG></TD></TR></TABLE>
|
127
|
+
<span class='noprint'><p><center>
|
128
|
+
<table border='0' cellpadding='4' bgcolor='yellow' width='80%'><tr><td>
|
129
|
+
|
130
|
+
<table border='0' cellpadding='5' cellspacing='0' bgcolor='white' width='100%'><tr>
|
131
|
+
<td><img src='/sdb_library/images/caution.gif' width='30' height='30' hspace='10'></td>
|
132
|
+
<td>
|
133
|
+
To protect your privacy and prevent unauthorized use,
|
134
|
+
<a href='http://www.washington.edu/computing/weblogin/logout.html' target='_logout'>close
|
135
|
+
<b>ALL</b> of your web browser windows</a>
|
136
|
+
and web-enabled applications when you finish.
|
137
|
+
</td>
|
138
|
+
</tr></table>
|
139
|
+
|
140
|
+
</td></tr></table>
|
141
|
+
</center></p></span>
|
142
|
+
<P></P>
|
143
|
+
<table border='0' cellpadding='0' cellspacing='0' align='center' width='100%'>
|
144
|
+
<tr>
|
145
|
+
<td rowspan='2'>
|
146
|
+
<a href='http://www.washington.edu/'><img src='/sdb_library/images/footersealW.gif' border='0' height='48' width='48' hspace='5' vspace='7' alt='UW Seal'></a>
|
147
|
+
</td>
|
148
|
+
<td rowspan='3' bgcolor='#666666' width='5'><img src='/sdb_library/images/1px_transparent.gif' width='7' height='1'></td>
|
149
|
+
<td colspan='2' bgcolor='#666666' height='1'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='1'></td>
|
150
|
+
</tr><tr>
|
151
|
+
<td width='100%'>
|
152
|
+
<table border='0' width='100%'>
|
153
|
+
<tr>
|
154
|
+
<td valign='top'><address>
|
155
|
+
Office of the Registrar<br>
|
156
|
+
regoff@u.washington.edu<br>
|
157
|
+
June 27, 2009
|
158
|
+
</address>
|
159
|
+
</td>
|
160
|
+
</tr>
|
161
|
+
</table>
|
162
|
+
</td>
|
163
|
+
</tr><tr height='1'>
|
164
|
+
<td bgcolor='#666666'><img src='/sdb_library/images/1px_transparent.gif' width='1' height='1'></td>
|
165
|
+
</tr>
|
166
|
+
</table>
|
167
|
+
|
168
|
+
</BODY>
|
169
|
+
</HTML>
|
data/test/mocked/myuw_test.rb
CHANGED
@@ -23,5 +23,10 @@ class MyUWTest < Test::Unit::TestCase
|
|
23
23
|
assert @myuw.session
|
24
24
|
assert @myuw.session.kind_of?(MyUW::Session)
|
25
25
|
end
|
26
|
+
|
27
|
+
should "initialize the schedule object" do
|
28
|
+
assert @myuw.schedule
|
29
|
+
assert @myuw.schedule.kind_of?(MyUW::Schedule)
|
30
|
+
end
|
26
31
|
end
|
27
32
|
end
|
@@ -0,0 +1,132 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_helper')
|
2
|
+
|
3
|
+
class MockedScheduleTest < Test::Unit::TestCase
|
4
|
+
context "fetching a person's schedule" do
|
5
|
+
setup do
|
6
|
+
@myuw = MyUW.new
|
7
|
+
@myuw.stubs(:logged_in?).returns(true)
|
8
|
+
@browser = @myuw.browser
|
9
|
+
@browser.follow_meta_refresh = false
|
10
|
+
@schedule = @myuw.schedule
|
11
|
+
|
12
|
+
@courses = [
|
13
|
+
{
|
14
|
+
:sln => "14368",
|
15
|
+
:course => "HIST 111 A",
|
16
|
+
:type => "LC",
|
17
|
+
:credits => "5.0",
|
18
|
+
:title => "THE ANCIENT WORLD",
|
19
|
+
:days => "MTWTh",
|
20
|
+
:time => "130-220",
|
21
|
+
:location => "SMI 120",
|
22
|
+
:instructor => "WALKER,JOEL T"
|
23
|
+
},
|
24
|
+
{
|
25
|
+
:sln => "14372"
|
26
|
+
},
|
27
|
+
{
|
28
|
+
:sln => "12271"
|
29
|
+
}
|
30
|
+
]
|
31
|
+
end
|
32
|
+
|
33
|
+
should "raise NotLoggedInError if not logged in and fetching schedule" do
|
34
|
+
@myuw.expects(:logged_in?).returns(false)
|
35
|
+
|
36
|
+
assert_raise MyUW::NotLoggedInError do
|
37
|
+
@myuw.schedule.schedule
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
should "raise InvalidPageError if there are no courses in the table" do
|
42
|
+
fixture_page = @browser.get(path_to_html("schedule_empty"))
|
43
|
+
@browser.expects(:get).returns(fixture_page)
|
44
|
+
|
45
|
+
assert_raise MyUW::InvalidPageError do
|
46
|
+
@schedule.schedule
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
should "get the courses" do
|
51
|
+
fixture_page = @browser.get(path_to_html("schedule"))
|
52
|
+
@browser.expects(:get).returns(fixture_page)
|
53
|
+
|
54
|
+
assert_nothing_raised { @schedule.schedule }
|
55
|
+
assert @schedule.courses
|
56
|
+
assert_equal @courses.length, @schedule.courses.length
|
57
|
+
|
58
|
+
@courses.each_index do |i|
|
59
|
+
course = @courses[i]
|
60
|
+
|
61
|
+
course.each do |k, v|
|
62
|
+
assert_equal v, @schedule.courses[i][k]
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
context "fetching a person's credits" do
|
69
|
+
setup do
|
70
|
+
@myuw = MyUW.new
|
71
|
+
@myuw.stubs(:logged_in?).returns(true)
|
72
|
+
@browser = @myuw.browser
|
73
|
+
@browser.follow_meta_refresh = false
|
74
|
+
@schedule = @myuw.schedule
|
75
|
+
end
|
76
|
+
|
77
|
+
should "raise InvalidPageError if the credit row is missing" do
|
78
|
+
fixture_page = @browser.get(path_to_html("schedule_no_credit_row"))
|
79
|
+
@browser.expects(:get).returns(fixture_page)
|
80
|
+
|
81
|
+
assert_raise MyUW::InvalidPageError do
|
82
|
+
@schedule.schedule
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
should "raise InvalidPageError if the credit row is in a different syntax" do
|
87
|
+
fixture_page = @browser.get(path_to_html("schedule_diff_credit_row"))
|
88
|
+
@browser.expects(:get).returns(fixture_page)
|
89
|
+
|
90
|
+
assert_raise MyUW::InvalidPageError do
|
91
|
+
@schedule.schedule
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
should "get the credits" do
|
96
|
+
fixture_page = @browser.get(path_to_html("schedule"))
|
97
|
+
@browser.expects(:get).returns(fixture_page)
|
98
|
+
|
99
|
+
assert_nothing_raised { @schedule.schedule }
|
100
|
+
assert @schedule.credits
|
101
|
+
assert_equal 8.0, @schedule.credits
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context "fetching precached values for a schedule" do
|
106
|
+
setup do
|
107
|
+
@myuw = MyUW.new
|
108
|
+
@myuw.stubs(:logged_in?).returns(true)
|
109
|
+
@browser = @myuw.browser
|
110
|
+
@browser.follow_meta_refresh = false
|
111
|
+
@schedule = @myuw.schedule
|
112
|
+
|
113
|
+
# Fetch them once
|
114
|
+
fixture_page = @browser.get(path_to_html("schedule"))
|
115
|
+
@browser.expects(:get).returns(fixture_page)
|
116
|
+
|
117
|
+
assert_nothing_raised { @schedule.schedule }
|
118
|
+
end
|
119
|
+
|
120
|
+
should "not call any helper methods when getting schedule" do
|
121
|
+
@browser.expects(:get).never
|
122
|
+
|
123
|
+
@schedule.schedule
|
124
|
+
end
|
125
|
+
|
126
|
+
should "not call any helper methods when getting credits" do
|
127
|
+
@schedule.expects(:schedule).never
|
128
|
+
|
129
|
+
@schedule.credits
|
130
|
+
end
|
131
|
+
end
|
132
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mitchellh-rubyuw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mitchell Hashimoto
|
@@ -37,9 +37,11 @@ files:
|
|
37
37
|
- VERSION
|
38
38
|
- lib/myuw.rb
|
39
39
|
- lib/myuw/errors.rb
|
40
|
+
- lib/myuw/schedule.rb
|
40
41
|
- lib/myuw/session.rb
|
41
42
|
- lib/myuw/sln.rb
|
42
43
|
- rubyuw.gemspec
|
44
|
+
- test/live/schedule_test.rb
|
43
45
|
- test/live/session_test.rb
|
44
46
|
- test/live/sln_test.rb
|
45
47
|
- test/live/test_helper.rb
|
@@ -49,10 +51,15 @@ files:
|
|
49
51
|
- test/mocked/fixture_pages/no_form_login.html
|
50
52
|
- test/mocked/fixture_pages/no_login_button.html
|
51
53
|
- test/mocked/fixture_pages/not_logged_in_relay.html
|
54
|
+
- test/mocked/fixture_pages/schedule.html
|
55
|
+
- test/mocked/fixture_pages/schedule_diff_credit_row.html
|
56
|
+
- test/mocked/fixture_pages/schedule_empty.html
|
57
|
+
- test/mocked/fixture_pages/schedule_no_credit_row.html
|
52
58
|
- test/mocked/fixture_pages/sln_does_not_exist.html
|
53
59
|
- test/mocked/fixture_pages/sln_status.html
|
54
60
|
- test/mocked/fixture_pages/welcome.html
|
55
61
|
- test/mocked/myuw_test.rb
|
62
|
+
- test/mocked/schedule_test.rb
|
56
63
|
- test/mocked/session_test.rb
|
57
64
|
- test/mocked/sln_test.rb
|
58
65
|
- test/mocked/test_helper.rb
|
@@ -84,10 +91,12 @@ signing_key:
|
|
84
91
|
specification_version: 2
|
85
92
|
summary: Library which provides a ruby interface to the University of Washington student portal.
|
86
93
|
test_files:
|
94
|
+
- test/live/schedule_test.rb
|
87
95
|
- test/live/session_test.rb
|
88
96
|
- test/live/sln_test.rb
|
89
97
|
- test/live/test_helper.rb
|
90
98
|
- test/mocked/myuw_test.rb
|
99
|
+
- test/mocked/schedule_test.rb
|
91
100
|
- test/mocked/session_test.rb
|
92
101
|
- test/mocked/sln_test.rb
|
93
102
|
- test/mocked/test_helper.rb
|