|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- <%
- '********************************************************************
- ' Name: ASPUnitRunner.asp
- '
- ' Purpose: Contains the UnitRunner class which is used to render the unit testing UI
- '********************************************************************
-
- '********************************************************************
- ' Include Files
- '********************************************************************
- %>
- <!-- #include file="ASPUnit.asp"-->
- <%
-
- Const ALL_TESTCONTAINERS = "All Test Containers"
- Const ALL_TESTCASES = "All Test Cases"
-
- Const FRAME_PARAMETER = "UnitRunner"
- Const FRAME_SELECTOR = "selector"
- Const FRAME_RESULTS = "results"
-
- Const STYLESHEET = "aspunit/include/ASPUnit.css"
- Const SCRIPTFILE = "aspunit/include/ASPUnitRunner.js"
-
- Class UnitRunner
-
- Private m_dicTestContainer
-
- Private Sub Class_Initialize()
- Set m_dicTestContainer = CreateObject("Scripting.Dictionary")
- End Sub
-
- Public Sub AddTestContainer(oTestContainer)
- m_dicTestContainer.Add TypeName(oTestContainer), oTestContainer
- End Sub
-
- Public Function Display()
- If (Request.QueryString(FRAME_PARAMETER) = FRAME_SELECTOR) Then
- DisplaySelector
- ElseIf (Request.QueryString(FRAME_PARAMETER) = FRAME_RESULTS) Then
- DisplayResults
- Else
- ShowFrameSet
- End if
- End Function
-
- '********************************************************************
- ' Frameset
- '********************************************************************
- Private Function ShowFrameSet()
- %>
- <HTML>
- <HEAD>
- <TITLE>ASPUnit Test Runner</TITLE>
- </HEAD>
- <FRAMESET ROWS="70, *" BORDER=0 FRAMEBORDER=0 FRAMESPACING=0>
- <FRAME NAME="<% = FRAME_SELECTOR %>" src="<% = GetSelectorFrameSrc %>" marginwidth="0" marginheight="0" scrolling="auto" border=0 frameborder=0 noresize>
- <FRAME NAME="<% = FRAME_RESULTS %>" src="<% = GetResultsFrameSrc %>" marginwidth="0" marginheight="0" scrolling="auto" border=0 frameborder=0 noresize>
- </FRAMESET>
- <%
- End Function
-
- Private Function GetSelectorFrameSrc()
- GetSelectorFrameSrc = Request.ServerVariables("SCRIPT_NAME") & "?" & FRAME_PARAMETER & "=" & FRAME_SELECTOR
- End Function
-
- Private Function GetResultsFrameSrc()
- GetResultsFrameSrc = Request.ServerVariables("SCRIPT_NAME") & "?" & FRAME_PARAMETER & "=" & FRAME_RESULTS
- End Function
-
- '********************************************************************
- ' Selector Frame
- '********************************************************************
- Private Function DisplaySelector()
- %>
- <HTML>
- <HEAD>
- <LINK REL="stylesheet" HREF="<% = STYLESHEET %>" MEDIA="screen" TYPE="text/css">
- <SCRIPT>
- function ComboBoxUpdate(strSelectorFrameSrc, strSelectorFrameName)
- {
- document.frmSelector.action = strSelectorFrameSrc;
- document.frmSelector.target = strSelectorFrameName;
- document.frmSelector.submit();
- }
- </SCRIPT>
- </HEAD>
- <BODY>
- <FORM NAME="frmSelector" ACTION="<% = GetResultsFrameSrc %>" TARGET="<% = FRAME_RESULTS %>" METHOD=POST>
- <TABLE class='Form'>
- <TR>
- <TD>
- <INPUT TYPE="Submit" NAME="cmdRun" class="Submit" VALUE="Run Tests">
- </TD>
- <TD ALIGN="right">Test:</TD>
- <TD>
- <SELECT NAME="cboTestContainers" OnChange="ComboBoxUpdate('<% = GetSelectorFrameSrc %>', '<% = FRAME_SELECTOR %>');">
- <OPTION><% = ALL_TESTCONTAINERS %>
- <%
- AddTestContainers
- %>
- </SELECT>
- </TD>
- <TD ALIGN="right">Test Method:</TD>
- <TD>
- <SELECT NAME="cboTestCases">
- <OPTION><% = ALL_TESTCASES %>
- <%
- AddTestMethods
- %>
- </SELECT>
- <TD>
- <INPUT TYPE="checkbox" NAME="chkShowSuccess"> Show Passing Tests</INPUT>
- </TD>
- </TD>
- </TR>
- </TABLE>
- </FORM>
- </BODY>
- </HTML>
- <%
- End Function
-
- Private Function AddTestContainers()
- Dim oTestContainer, sTestContainer
- For Each oTestContainer In m_dicTestContainer.Items()
- sTestContainer = TypeName(oTestContainer)
- If (sTestContainer = Request.Form("cboTestContainers")) Then
- Response.Write("<OPTION SELECTED>" & sTestContainer)
- Else
- Response.Write("<OPTION>" & sTestContainer)
- End If
- Next
- End Function
-
- Private Function AddTestMethods()
- Dim oTestContainer, sContainer, sTestMethod
-
- If (Request.Form("cboTestContainers") <> ALL_TESTCONTAINERS And Request.Form("cboTestContainers") <> "") Then
- sContainer = CStr(Request.Form("cboTestContainers"))
- Set oTestContainer = m_dicTestContainer.Item(sContainer)
- For Each sTestMethod In oTestContainer.TestCaseNames()
- Response.Write("<OPTION>" & sTestMethod)
- Next
- End If
- End Function
-
- Private Function TestName(oResult)
- If (oResult.TestCase Is Nothing) Then
- TestName = ""
- Else
- TestName = TypeName(oResult.TestCase.TestContainer) & "." & oResult.TestCase.TestMethod
- End If
- End Function
-
- '********************************************************************
- ' Results Frame
- '********************************************************************
- Private Function DisplayResults()
- %>
- <HTML>
- <HEAD>
- <LINK REL="stylesheet" HREF="<% = STYLESHEET %>" MEDIA="screen" TYPE="text/css">
- </HEAD>
- <BODY>
- <%
- Dim oTestResult, oTestSuite
- Set oTestResult = New TestResult
-
- ' Create TestSuite
- Set oTestSuite = BuildTestSuite()
-
- ' Run Tests
- oTestSuite.Run oTestResult
-
- ' Display Results
- DisplayResultsTable oTestResult
- %>
- </BODY>
- </HTML>
- <%
- End Function
-
- Private Function BuildTestSuite()
-
- Dim oTestSuite, oTestContainer, sContainer
- Set oTestSuite = New TestSuite
-
- If (Request.Form("cmdRun") <> "") Then
- If (Request.Form("cboTestContainers") = ALL_TESTCONTAINERS) Then
- For Each oTestContainer In m_dicTestContainer.Items()
- If Not(oTestContainer Is Nothing) Then
- oTestSuite.AddAllTestCases oTestContainer
- End If
- Next
- Else
- sContainer = CStr(Request.Form("cboTestContainers"))
- Set oTestContainer = m_dicTestContainer.Item(sContainer)
-
- Dim sTestMethod
- sTestMethod = Request.Form("cboTestCases")
-
- If (sTestMethod = ALL_TESTCASES) Then
- oTestSuite.AddAllTestCases oTestContainer
- Else
- oTestSuite.AddTestCase oTestContainer, sTestMethod
- End If
- End If
- End If
-
- Set BuildTestSuite = oTestSuite
- End Function
-
- Private Function DisplayResultsTable(oTestResult)
- %>
- <TABLE BORDER="1" class='Results'>
- <TR><TH WIDTH="10%" class="Type">Type</TH><TH WIDTH="20%" class="Test">Test</TH><TH WIDTH="70%" class="Desc">Description</TH></TR>
- <%
- If Not(oTestResult Is Nothing) Then
- Dim oResult
- If (Request.Form("chkShowSuccess") <> "") Then
- For Each oResult in oTestResult.Successes
- Response.Write(" <TR CLASS=""success""><TD class='Type'>Success</TD><TD class='Test'>" & TestName(oResult) & "</TD><TD class='Desc'>" & oResult.Source & oResult.Description & "</TD></TR>")
- Next
- End If
-
- For Each oResult In oTestResult.Errors
- Response.Write(" <TR CLASS=""error""><TD class='Type'>Error</TD><TD class='Test'>" & TestName(oResult) & "</TD><TD class='Desc'>" & oResult.Source & " (" & Trim(oResult.ErrNumber) & "): " & oResult.Description & "</TD></TR>")
- Next
-
- For Each oResult In oTestResult.Failures
- Response.Write(" <TR CLASS=""warning""><TD class='Type'>Failure</TD><TD class='Test'>" & TestName(oResult) & "</TD><TD class='Desc'>" & oResult.Description & "</TD></TR>")
- Next
-
- Response.Write " <TR><TD ALIGN=""center"" COLSPAN=3 class='" & ResultRowClass(oTestResult) & "'>" & "Tests: " & oTestResult.RunTests & ", Errors: " & oTestResult.Errors.Count & ", Failures: " & oTestResult.Failures.Count & "</TD></TR>"
- End If
- %>
- </TABLE>
- <%
- End Function
-
- Private Function ResultRowClass(oTestResult)
- if oTestResult.Errors.Count > 0 then
- ResultRowClass = "error"
- elseif oTestResult.Failures.Count > 0 then
- ResultRowClass = "warning"
- elseif oTestResult.Successes.Count > 0 then
- ResultRowClass = "success"
- end if
- End Function
-
- Public Sub OnStartTest()
-
- End Sub
-
- Public Sub OnEndTest()
-
- End Sub
-
- Public Sub OnError()
-
- End Sub
-
- Public Sub OnFailure()
-
- End Sub
-
- Public Sub OnSuccess()
-
- End Sub
- End Class
- %>
-
|