Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

initial checkin

  • Loading branch information...
commit 16b3c3eed237024f13f01cf15d9357a17961259d 0 parents
@handcraftsman handcraftsman authored
Showing with 3,677 additions and 0 deletions.
  1. +11 −0 .gitignore
  2. +8 −0 Build.bat
  3. +14 −0 README.md
  4. +81 −0 RakeFile
  5. +80 −0 build_support/BuildUtils.rb
  6. +30 −0 build_support/Ruby_Not_Installed.txt
  7. BIN  lib/FluentAssert/FluentAssert.dll
  8. BIN  lib/FluentAssert/FluentAssert.pdb
  9. +3 −0  lib/FluentAssert/provenance.txt
  10. BIN  lib/NUnit/NUnit-2.5.3.9345.zip
  11. +277 −0 lib/NUnit/NUnitFitTests.html
  12. +84 −0 lib/NUnit/NUnitTests.config
  13. +14 −0 lib/NUnit/NUnitTests.nunit
  14. +4 −0 lib/NUnit/agent.conf
  15. +18 −0 lib/NUnit/agent.log.conf
  16. +342 −0 lib/NUnit/fit-license.txt
  17. +18 −0 lib/NUnit/launcher.log.conf
  18. BIN  lib/NUnit/lib/Failure.png
  19. BIN  lib/NUnit/lib/Ignored.png
  20. BIN  lib/NUnit/lib/Inconclusive.png
  21. BIN  lib/NUnit/lib/Skipped.png
  22. BIN  lib/NUnit/lib/Success.png
  23. BIN  lib/NUnit/lib/fit.dll
  24. BIN  lib/NUnit/lib/log4net.dll
  25. BIN  lib/NUnit/lib/nunit-console-runner.dll
  26. BIN  lib/NUnit/lib/nunit-gui-runner.dll
  27. BIN  lib/NUnit/lib/nunit.core.dll
  28. BIN  lib/NUnit/lib/nunit.core.interfaces.dll
  29. BIN  lib/NUnit/lib/nunit.fixtures.dll
  30. BIN  lib/NUnit/lib/nunit.uiexception.dll
  31. BIN  lib/NUnit/lib/nunit.uikit.dll
  32. BIN  lib/NUnit/lib/nunit.util.dll
  33. +15 −0 lib/NUnit/license.txt
  34. BIN  lib/NUnit/nunit-agent-x86.exe
  35. +87 −0 lib/NUnit/nunit-agent-x86.exe.config
  36. BIN  lib/NUnit/nunit-agent.exe
  37. +87 −0 lib/NUnit/nunit-agent.exe.config
  38. BIN  lib/NUnit/nunit-console-x86.exe
  39. +87 −0 lib/NUnit/nunit-console-x86.exe.config
  40. BIN  lib/NUnit/nunit-console.exe
  41. +87 −0 lib/NUnit/nunit-console.exe.config
  42. BIN  lib/NUnit/nunit-x86.exe
  43. +95 −0 lib/NUnit/nunit-x86.exe.config
  44. BIN  lib/NUnit/nunit.exe
  45. +95 −0 lib/NUnit/nunit.exe.config
  46. BIN  lib/NUnit/nunit.framework.dll
  47. BIN  lib/NUnit/pnunit-agent.exe
  48. +87 −0 lib/NUnit/pnunit-agent.exe.config
  49. BIN  lib/NUnit/pnunit-launcher.exe
  50. +87 −0 lib/NUnit/pnunit-launcher.exe.config
  51. BIN  lib/NUnit/pnunit.framework.dll
  52. BIN  lib/NUnit/pnunit.tests.dll
  53. +4 −0 lib/NUnit/provenance.txt
  54. BIN  lib/NUnit/runFile.exe
  55. +43 −0 lib/NUnit/runFile.exe.config
  56. +2 −0  lib/NUnit/runpnunit.bat
  57. +24 −0 lib/NUnit/test.conf
  58. +346 −0 src/LinqToHtml.5.1.ReSharper
  59. +185 −0 src/LinqToHtml.Tests/HTMLDocumentTests.cs
  60. +49 −0 src/LinqToHtml.Tests/HTMLParserTests.cs
  61. +84 −0 src/LinqToHtml.Tests/HTMLTagAttributeExtensionsTests.cs
  62. +95 −0 src/LinqToHtml.Tests/HTMLTagAttributeTests.cs
  63. +84 −0 src/LinqToHtml.Tests/HTMLTagExtensionsTests.cs
  64. +214 −0 src/LinqToHtml.Tests/HTMLTagTests.cs
  65. +78 −0 src/LinqToHtml.Tests/LinqToHtml.Tests.csproj
  66. +39 −0 src/LinqToHtml.Tests/Properties/AssemblyInfo.cs
  67. +26 −0 src/LinqToHtml.sln
  68. +67 −0 src/LinqToHtml/HTMLDocument.cs
  69. +15 −0 src/LinqToHtml/HTMLParser.cs
  70. +73 −0 src/LinqToHtml/HTMLTag.cs
  71. +24 −0 src/LinqToHtml/HTMLTagAttribute.cs
  72. +12 −0 src/LinqToHtml/HTMLTagAttributeExtensions.cs
  73. +18 −0 src/LinqToHtml/HTMLTagExtensions.cs
  74. +23 −0 src/LinqToHtml/IEnumerableXmlNodeExtensions.cs
  75. +66 −0 src/LinqToHtml/LinqToHtml.csproj
  76. +39 −0 src/LinqToHtml/Properties/AssemblyInfo.cs
  77. +15 −0 src/LinqToHtml/XmlNodeListExtensions.cs
  78. +341 −0 src/Resharper CodeStyles 5.1.xml
11 .gitignore
@@ -0,0 +1,11 @@
+*resharper.user
+build/
+[Bb]in/
+[Oo]bj/
+*.suo
+*.sln.cache
+_ReSharper.*/
+*.user
+dist
+CommonAssemblyInfo.cs
+TestResult.xml
8 Build.bat
@@ -0,0 +1,8 @@
+@ECHO OFF
+rake %*
+IF %ERRORLEVEL%==9009 GOTO:rake_failed
+GOTO:EOF
+
+:rake_failed
+type build_support\Ruby_Not_Installed.txt
+GOTO :EOF
14 README.md
@@ -0,0 +1,14 @@
+A simple utility that lets you use LINQ syntax to query HTML instead of XSLT. We use it in unit tests to verify that generated HTML correctly represents the generation inputs.
+
+## Samples
+
+
+
+## License
+
+[MIT License][mitlicense]
+
+This project is part of [MVBA Law Commons][mvbalawcommons].
+
+[mvbalawcommons]: http://code.google.com/p/mvbalaw-commons/
+[mitlicense]: http://www.opensource.org/licenses/mit-license.php
81 RakeFile
@@ -0,0 +1,81 @@
+COMPILE_TARGET = "debug"
+require "build_support/BuildUtils.rb"
+
+include FileTest
+
+require 'rubygems'
+
+require 'zip/zip'
+require 'zip/zipfilesystem'
+
+RESULTS_DIR = "results"
+BUILD_NUMBER = "1.0.0."
+PRODUCT = "LinqToHtml"
+COPYRIGHT = 'Copyright 2009-2010 McCreary, Veselka, Bragg & Allen, P.C. All rights reserved.';
+COMMON_ASSEMBLY_INFO = 'src/CommonAssemblyInfo.cs';
+CLR_VERSION = "v3.5"
+
+versionNumber = ENV["BUILD_NUMBER"].nil? ? 0 : ENV["BUILD_NUMBER"]
+
+props = { :archive => "dist" }
+
+desc "Compiles, unit tests"
+task :all => [:default]
+
+desc "**Default**, compiles and runs tests"
+task :default => [:compile, :test] do
+ puts "Build Succeeded"
+end
+
+desc "Displays a list of tasks"
+task :help do
+ taskHash = Hash[*(`rake.cmd -T`.split(/\n/).collect { |l| l.match(/rake (\S+)\s+\#\s(.+)/).to_a }.collect { |l| [l[1], l[2]] }).flatten]
+
+ indent = " "
+
+ puts "rake #{indent}#Runs the 'default' task"
+
+ taskHash.each_pair do |key, value|
+ if key.nil?
+ next
+ end
+ puts "rake #{key}#{indent.slice(0, indent.length - key.length)}##{value}"
+ end
+end
+
+desc "Update the version information for the build"
+task :version do
+ builder = AsmInfoBuilder.new(BUILD_NUMBER, {'Product' => PRODUCT, 'Copyright' => COPYRIGHT})
+ buildNumber = builder.buildnumber
+ puts "The build number is #{buildNumber}"
+ builder.write COMMON_ASSEMBLY_INFO
+end
+
+desc "Prepares the working directory for a new build"
+task :clean do
+ #TODO: do any other tasks required to clean/prepare the working directory
+ Dir.mkdir props[:archive] unless exists?(props[:archive])
+end
+
+desc "Compiles the app"
+task :compile => [:clean, :version] do
+ MSBuildRunner.compile :compilemode => COMPILE_TARGET, :solutionfile => 'src/LinqToHtml.sln', :clrversion => CLR_VERSION
+
+ outDir = "src/LinqToHtml/bin/#{COMPILE_TARGET}"
+
+ Dir.glob(File.join(outDir, "*.{dll,pdb}")){|file|
+ copy(file, props[:archive]) if File.file?(file)
+ }
+end
+
+desc "Runs unit tests"
+task :test => [:unit_test]
+
+desc "Runs LinqToHtml.Tests unit tests"
+task :unit_test => :compile do
+ runner = NUnitRunner.new :compilemode => COMPILE_TARGET, :source => 'src', :platform => 'x86'
+ runner.executeTests ['LinqToHtml.Tests']
+end
+
+desc "Target used for the CI server"
+task :ci => [:unit_test]
80 build_support/BuildUtils.rb
@@ -0,0 +1,80 @@
+require 'erb'
+
+class NUnitRunner
+ include FileTest
+
+ def initialize(paths)
+ @sourceDir = paths.fetch(:source, 'source')
+ @resultsDir = paths.fetch(:results, 'results')
+ @compilePlatform = paths.fetch(:platform, '')
+ @compileTarget = paths.fetch(:compilemode, 'debug')
+
+ @nunitExe = File.join('lib', 'nunit', "nunit-console#{(@compilePlatform.empty? ? '' : "-#{@compilePlatform}")}.exe").gsub('/','\\') + ' /nothread'
+ end
+
+ def executeTests(assemblies)
+ Dir.mkdir @resultsDir unless exists?(@resultsDir)
+
+ assemblies.each do |assem|
+ file = File.expand_path("#{@sourceDir}/#{assem}/bin/#{@compileTarget}/#{assem}.dll")
+ sh "#{@nunitExe} #{file}"
+ end
+ end
+end
+
+class MSBuildRunner
+ def self.compile(attributes)
+ version = attributes.fetch(:clrversion, 'v3.5')
+ compileTarget = attributes.fetch(:compilemode, 'debug')
+ solutionFile = attributes[:solutionfile]
+
+ frameworkDir = File.join(ENV['windir'].dup, 'Microsoft.NET', 'Framework', version)
+ msbuildFile = File.join(frameworkDir, 'msbuild.exe')
+
+ sh "#{msbuildFile} #{solutionFile} /nologo /maxcpucount /v:m /property:BuildInParallel=false /property:Configuration=#{compileTarget} /t:Rebuild"
+ end
+end
+
+class AspNetCompilerRunner
+ def self.compile(attributes)
+
+ webPhysDir = attributes.fetch(:webPhysDir, '')
+ webVirDir = attributes.fetch(:webVirDir, 'This_Value_Is_Not_Used')
+
+ frameworkDir = File.join(ENV['windir'].dup, 'Microsoft.NET', 'Framework', 'v2.0.50727')
+ aspNetCompiler = File.join(frameworkDir, 'aspnet_compiler.exe')
+
+ sh "#{aspNetCompiler} -nologo -errorstack -c -p #{webPhysDir} -v #{webVirDir}"
+ end
+end
+
+class AsmInfoBuilder
+ attr_reader :buildnumber
+
+ def initialize(baseVersion, properties)
+ @properties = properties;
+
+ @buildnumber = baseVersion + (ENV["CCNetLabel"].nil? ? '0' : ENV["CCNetLabel"].to_s)
+ @properties['Version'] = @properties['InformationalVersion'] = buildnumber;
+ end
+
+
+
+ def write(file)
+ template = %q{
+using System;
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+<% @properties.each {|k, v| %>
+[assembly: Assembly<%=k%>Attribute("<%=v%>")]
+<% } %>
+ }.gsub(/^ /, '')
+
+ erb = ERB.new(template, 0, "%<>")
+
+ File.open(file, 'w') do |file|
+ file.puts erb.result(binding)
+ end
+ end
+end
30 build_support/Ruby_Not_Installed.txt
@@ -0,0 +1,30 @@
+
+**********************************************
+WE'RE SORRY!
+Ruby not installed?
+**********************************************
+
+It appears you do not have Ruby installed.
+This project uses the "Rake" build system from Ruby.
+
+If you *DO* have Ruby installed, please make sure the
+Ruby\bin folder is in your PATH.
+
+If you *DON'T* have Ruby installed then, in order to
+run "Rake", please perform the following steps:
+
+ 1.) Download and install Ruby 1.8.6 (or later --
+ "1.8.6. One-Click installer recommended for Windows)
+
+ - Main Download URL:
+ http://www.ruby-lang.org/en/downloads/
+
+ - 1.8.6 One-Click installer:
+ http://rubyforge.org/frs/download.php/29263/ruby186-26.exe
+ (md5: 00540689d1039964bc8d844b2b0c7db6)
+
+
+ 2.) Install the Rake "Gem" and related "Gems" by running
+ InstallGems.bat in the same folder as this Build.bat file
+
+**********************************************
BIN  lib/FluentAssert/FluentAssert.dll
Binary file not shown
BIN  lib/FluentAssert/FluentAssert.pdb
Binary file not shown
3  lib/FluentAssert/provenance.txt
@@ -0,0 +1,3 @@
+source: FluentAssert http://github.com/mvba/FluentAssert
+
+license source: http://www.opensource.org/licenses/mit-license.php
BIN  lib/NUnit/NUnit-2.5.3.9345.zip
Binary file not shown
277 lib/NUnit/NUnitFitTests.html
@@ -0,0 +1,277 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+ <body>
+ <h1>NUnit Acceptance Tests</h1>
+ <p>
+ Developers love self-referential programs! Hence, NUnit has always run all it's
+ own tests, even those that are not really unit tests.
+ <p>Now, beginning with NUnit 2.4, NUnit has top-level tests using Ward Cunningham's
+ FIT framework. At this time, the tests are pretty rudimentary, but it's a start
+ and it's a framework for doing more.
+ <h2>Running the Tests</h2>
+ <p>Open a console or shell window and navigate to the NUnit bin directory, which
+ contains this file. To run the test under Microsoft .Net, enter the command
+ <pre> runFile NUnitFitTests.html TestResults.html .</pre>
+ To run it under Mono, enter
+ <pre> mono runFile.exe NUnitFitTests.html TestResults.html .</pre>
+ Note the space and dot at the end of each command. The results of your test
+ will be in TestResults.html in the same directory.
+ <h2>Platform and CLR Version</h2>
+ <table BORDER cellSpacing="0" cellPadding="5">
+ <tr>
+ <td colspan="2">NUnit.Fixtures.PlatformInfo</td>
+ </tr>
+ </table>
+ <h2>Verify Unit Tests</h2>
+ <p>
+ Load and run the NUnit unit tests, verifying that the results are as expected.
+ When these tests are run on different platforms, different numbers of tests may
+ be skipped, so the values for Skipped and Run tests are informational only.
+ <p>
+ The number of tests in each assembly should be constant across all platforms -
+ any discrepancy usually means that one of the test source files was not
+ compiled on the platform. There should be no failures and no tests ignored.
+ <p><b>Note:</b>
+ At the moment, the nunit.extensions.tests assembly is failing because the
+ fixture doesn't initialize addins in the test domain.
+ <p>
+ <table BORDER cellSpacing="0" cellPadding="5">
+ <tr>
+ <td colspan="6">NUnit.Fixtures.AssemblyRunner</td>
+ </tr>
+ <tr>
+ <td>Assembly</td>
+ <td>Tests()</td>
+ <td>Run()</td>
+ <td>Skipped()</td>
+ <td>Ignored()</td>
+ <td>Failures()</td>
+ </tr>
+ <tr>
+ <td>nunit.framework.tests.dll</td>
+ <td>397</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td>nunit.core.tests.dll</td>
+ <td>355</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td>nunit.util.tests.dll</td>
+ <td>238</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td>nunit.mocks.tests.dll</td>
+ <td>43</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td>nunit.extensions.tests.dll</td>
+ <td>5</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td>nunit-console.tests.dll</td>
+ <td>40</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td>nunit.uikit.tests.dll</td>
+ <td>34</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td>nunit-gui.tests.dll</td>
+ <td>15</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td>nunit.fixtures.tests.dll</td>
+ <td>6</td>
+ <td>&nbsp;</td>
+ <td>&nbsp;</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ </table>
+ <h2>Code Snippet Tests</h2>
+ <p>
+ These tests create a test assembly from a snippet of code and then load and run
+ the tests that it contains, verifying that the structure of the loaded tests is
+ as expected and that the number of tests run, skipped, ignored or failed is
+ correct.
+ <p>
+ <table BORDER cellSpacing="0" cellPadding="5">
+ <tr>
+ <td colspan="6">NUnit.Fixtures.SnippetRunner</td>
+ </tr>
+ <tr>
+ <td>Code</td>
+ <td>Tree()</td>
+ <td>Run()</td>
+ <td>Skipped()</td>
+ <td>Ignored()</td>
+ <td>Failures()</td>
+ </tr>
+ <tr>
+ <td><pre>public class TestClass
+{
+}</pre>
+ </td>
+ <td>EMPTY</td>
+ <td>0</td>
+ <td>0</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td><pre>using NUnit.Framework;
+
+[TestFixture]
+public class TestClass
+{
+}</pre>
+ </td>
+ <td>TestClass</td>
+ <td>0</td>
+ <td>0</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td><pre>using NUnit.Framework;
+
+[TestFixture]
+public class TestClass
+{
+ [Test]
+ public void T1() { }
+ [Test]
+ public void T2() { }
+ [Test]
+ public void T3() { }
+}</pre>
+ </td>
+ <td><pre>TestClass
+&gt;T1
+&gt;T2
+&gt;T3</pre>
+ </td>
+ <td>3</td>
+ <td>0</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td><pre>using NUnit.Framework;
+
+[TestFixture]
+public class TestClass1
+{
+ [Test]
+ public void T1() { }
+}
+
+[TestFixture]
+public class TestClass2
+{
+ [Test]
+ public void T2() { }
+ [Test]
+ public void T3() { }
+}</pre>
+ </td>
+ <td><pre>TestClass1
+&gt;T1
+TestClass2
+&gt;T2
+&gt;T3</pre>
+ </td>
+ <td>3</td>
+ <td>0</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td><pre>using NUnit.Framework;
+
+[TestFixture]
+public class TestClass
+{
+ [Test]
+ public void T1() { }
+ [Test, Ignore]
+ public void T2() { }
+ [Test]
+ public void T3() { }
+}</pre>
+ </td>
+ <td><pre>TestClass
+&gt;T1
+&gt;T2
+&gt;T3</pre>
+ </td>
+ <td>2</td>
+ <td>0</td>
+ <td>1</td>
+ <td>0</td>
+ </tr>
+ <tr>
+ <td><pre>using NUnit.Framework;
+
+[TestFixture]
+public class TestClass
+{
+ [Test]
+ public void T1() { }
+ [Test, Explicit]
+ public void T2() { }
+ [Test]
+ public void T3() { }
+}</pre>
+ </td>
+ <td><pre>TestClass
+&gt;T1
+&gt;T2
+&gt;T3</pre>
+ </td>
+ <td>2</td>
+ <td>1</td>
+ <td>0</td>
+ <td>0</td>
+ </tr>
+ </table>
+ <h2>Summary Information</h2>
+ <table BORDER cellSpacing="0" cellPadding="5">
+ <tr>
+ <td colspan="2">fit.Summary</td>
+ </tr>
+ </table>
+ </body>
+</html>
84 lib/NUnit/NUnitTests.config
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+<!--
+ This is the configuration file for the NUnitTests.nunit test project. You may
+ need to create a similar configuration file for your own test project.
+ -->
+
+<!--
+ The <NUnit> section is only needed if you want to use a non-default value
+ for any of the settings. It is commented out below. If you are going to use
+ it, you must deifne the NUnit section group and the sections you need.
+
+ The syntax shown here works for most runtimes. If NUnit fails at startup, you
+ can try specifying the name of the assembly containing the NameValueSectionHandler:
+
+ <section name="TestCaseBuilder" type="System.Configuration.NameValueSectionHandler, System" />
+
+ If that fails, try the fully qualified name of the assembly:
+
+ <section name="TestCaseBuilder" type="System.Configuration.NameValueSectionHandler, System,
+ Version=2.0.50727.832, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
+
+ Unfortunately, this last approach makes your config file non-portable across runtimes.
+ -->
+
+<!--
+ <configSections>
+ <sectionGroup name="NUnit">
+ <section name="TestCaseBuilder" type="System.Configuration.NameValueSectionHandler"/>
+ <section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/>
+ </sectionGroup>
+ </configSections>
+ -->
+
+ <appSettings>
+ <!-- User application and configured property settings go here.-->
+ <!-- Example: <add key="settingName" value="settingValue"/> -->
+ <add key="test.setting" value="54321" />
+ </appSettings>
+
+<!-- Sample NUnit section group showing all default values -->
+<!--
+ <NUnit>
+ <TestCaseBuilder>
+ <add key="OldStyleTestCases" value="false" />
+ </TestCaseBuilder>
+ <TestRunner>
+ <add key="ApartmentState" value="MTA" />
+ <add key="ThreadPriority" value="Normal" />
+ </TestRunner>
+ </NUnit>
+-->
+
+ <!--
+ The following <runtime> section allows running nunit tests under
+ .NET 1.0 by redirecting assemblies. The appliesTo attribute
+ causes the section to be ignored except under .NET 1.0.
+ -->
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
+ appliesTo="v1.0.3705">
+ <dependentAssembly>
+ <assemblyIdentity name="System" publicKeyToken="b77a5c561934e089" culture="" />
+ <bindingRedirect oldVersion="1.0.5000.0" newVersion="1.0.3300.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Data" publicKeyToken="b77a5c561934e089" culture="" />
+ <bindingRedirect oldVersion="1.0.5000.0" newVersion="1.0.3300.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Drawing" publicKeyToken="b03f5f7f11d50a3a" culture="" />
+ <bindingRedirect oldVersion="1.0.5000.0" newVersion="1.0.3300.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Windows.Forms" publicKeyToken="b77a5c561934e089" culture="" />
+ <bindingRedirect oldVersion="1.0.5000.0" newVersion="1.0.3300.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Xml" publicKeyToken="b77a5c561934e089" culture="" />
+ <bindingRedirect oldVersion="1.0.5000.0" newVersion="1.0.3300.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration>
14 lib/NUnit/NUnitTests.nunit
@@ -0,0 +1,14 @@
+<NUnitProject>
+ <Settings appbase="."/>
+ <Config name="Default" binpath="lib;tests;framework" runtimeFramework="v2.0">
+ <assembly path="tests/nunit.framework.tests.dll" />
+ <assembly path="tests/nunit.core.tests.dll" />
+ <assembly path="tests/nunit.util.tests.dll" />
+ <assembly path="tests/nunit.mocks.tests.dll" />
+ <assembly path="tests/nunit-console.tests.dll" />
+ <assembly path="tests/nunit.uiexception.tests.dll" />
+ <assembly path="tests/nunit.uikit.tests.dll" />
+ <assembly path="tests/nunit-gui.tests.dll" />
+ <assembly path="tests/nunit.fixtures.tests.dll" />
+ </Config>
+</NUnitProject>
4 lib/NUnit/agent.conf
@@ -0,0 +1,4 @@
+<AgentConfig>
+ <Port>8080</Port>
+ <PathToAssemblies>.</PathToAssemblies>
+</AgentConfig>
18 lib/NUnit/agent.log.conf
@@ -0,0 +1,18 @@
+<log4net>
+ <!-- A1 is set to be a ConsoleAppender -->
+ <appender name="A1" type="log4net.Appender.ConsoleAppender">
+
+ <!-- A1 uses PatternLayout -->
+ <layout type="log4net.Layout.PatternLayout">
+ <!-- Print the date in ISO 8601 format -->
+ <conversionPattern value="%-5level %logger - %message%newline" />
+ </layout>
+ </appender>
+
+ <!-- Set root logger level to DEBUG and its only appender to A1 -->
+ <root>
+ <level value="DEBUG" />
+ <appender-ref ref="A1" />
+ </root>
+
+</log4net>
342 lib/NUnit/fit-license.txt
@@ -0,0 +1,342 @@
+
+
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
18 lib/NUnit/launcher.log.conf
@@ -0,0 +1,18 @@
+<log4net>
+ <!-- A1 is set to be a ConsoleAppender -->
+ <appender name="A1" type="log4net.Appender.ConsoleAppender">
+
+ <!-- A1 uses PatternLayout -->
+ <layout type="log4net.Layout.PatternLayout">
+ <!-- Print the date in ISO 8601 format -->
+ <conversionPattern value="%-5level %logger - %message%newline" />
+ </layout>
+ </appender>
+
+ <!-- Set root logger level to DEBUG and its only appender to A1 -->
+ <root>
+ <level value="DEBUG" />
+ <appender-ref ref="A1" />
+ </root>
+
+</log4net>
BIN  lib/NUnit/lib/Failure.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/NUnit/lib/Ignored.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/NUnit/lib/Inconclusive.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/NUnit/lib/Skipped.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/NUnit/lib/Success.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
BIN  lib/NUnit/lib/fit.dll
Binary file not shown
BIN  lib/NUnit/lib/log4net.dll
Binary file not shown
BIN  lib/NUnit/lib/nunit-console-runner.dll
Binary file not shown
BIN  lib/NUnit/lib/nunit-gui-runner.dll
Binary file not shown
BIN  lib/NUnit/lib/nunit.core.dll
Binary file not shown
BIN  lib/NUnit/lib/nunit.core.interfaces.dll
Binary file not shown
BIN  lib/NUnit/lib/nunit.fixtures.dll
Binary file not shown
BIN  lib/NUnit/lib/nunit.uiexception.dll
Binary file not shown
BIN  lib/NUnit/lib/nunit.uikit.dll
Binary file not shown
BIN  lib/NUnit/lib/nunit.util.dll
Binary file not shown
15 lib/NUnit/license.txt
@@ -0,0 +1,15 @@
+Copyright © 2002-2008 Charlie Poole
+Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov
+Copyright © 2000-2002 Philip A. Craig
+
+This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment (see the following) in the product documentation is required.
+
+Portions Copyright © 2002-2008 Charlie Poole or Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or Copyright © 2000-2002 Philip A. Craig
+
+2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
+
+3. This notice may not be removed or altered from any source distribution.
BIN  lib/NUnit/nunit-agent-x86.exe
Binary file not shown
87 lib/NUnit/nunit-agent-x86.exe.config
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<configuration>
+ <!--
+ Application settings for nunit-agent.exe. Do NOT put settings
+ for use by your tests here.
+ -->
+ <appSettings>
+ <!--
+ Specify the location to be used by .NET for the cache
+ -->
+ <add key="shadowfiles.path" value="%temp%\nunit20\ShadowCopyCache" />
+ </appSettings>
+
+ <!-- Set the level for tracing NUnit itself -->
+ <!-- 0=Off 1=Error 2=Warning 3=Info 4=Debug -->
+ <system.diagnostics>
+ <switches>
+ <add name="NTrace" value="0" />
+ </switches>
+ </system.diagnostics>
+
+ <runtime>
+ <!-- We need this so test exceptions don't crash NUnit -->
+ <legacyUnhandledExceptionPolicy enabled="1" />
+
+ <!-- Look for addins in the addins directory for now -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <probing privatePath="lib;addins"/>
+ </assemblyBinding>
+
+ <!--
+ The following <assemblyBinding> section allows running nunit under
+ .NET 1.0 by redirecting assemblies. The appliesTo attribute
+ causes the section to be ignored except under .NET 1.0
+ on a machine with only the .NET version 1.0 runtime installed.
+ If application and its tests were built for .NET 1.1 you will
+ also need to redirect system assemblies in the test config file,
+ which controls loading of the tests.
+ -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
+ appliesTo="v1.0.3705">
+
+ <dependentAssembly>
+ <assemblyIdentity name="System"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Data"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Drawing"
+ publicKeyToken="b03f5f7f11d50a3a"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Windows.Forms"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Xml"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ </assemblyBinding>
+
+ </runtime>
+
+</configuration>
BIN  lib/NUnit/nunit-agent.exe
Binary file not shown
87 lib/NUnit/nunit-agent.exe.config
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<configuration>
+ <!--
+ Application settings for nunit-agent.exe. Do NOT put settings
+ for use by your tests here.
+ -->
+ <appSettings>
+ <!--
+ Specify the location to be used by .NET for the cache
+ -->
+ <add key="shadowfiles.path" value="%temp%\nunit20\ShadowCopyCache" />
+ </appSettings>
+
+ <!-- Set the level for tracing NUnit itself -->
+ <!-- 0=Off 1=Error 2=Warning 3=Info 4=Debug -->
+ <system.diagnostics>
+ <switches>
+ <add name="NTrace" value="0" />
+ </switches>
+ </system.diagnostics>
+
+ <runtime>
+ <!-- We need this so test exceptions don't crash NUnit -->
+ <legacyUnhandledExceptionPolicy enabled="1" />
+
+ <!-- Look for addins in the addins directory for now -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <probing privatePath="lib;addins"/>
+ </assemblyBinding>
+
+ <!--
+ The following <assemblyBinding> section allows running nunit under
+ .NET 1.0 by redirecting assemblies. The appliesTo attribute
+ causes the section to be ignored except under .NET 1.0
+ on a machine with only the .NET version 1.0 runtime installed.
+ If application and its tests were built for .NET 1.1 you will
+ also need to redirect system assemblies in the test config file,
+ which controls loading of the tests.
+ -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
+ appliesTo="v1.0.3705">
+
+ <dependentAssembly>
+ <assemblyIdentity name="System"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Data"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Drawing"
+ publicKeyToken="b03f5f7f11d50a3a"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Windows.Forms"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Xml"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ </assemblyBinding>
+
+ </runtime>
+
+</configuration>
BIN  lib/NUnit/nunit-console-x86.exe
Binary file not shown
87 lib/NUnit/nunit-console-x86.exe.config
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<configuration>
+ <!--
+ Application settings for NUnit-console.exe. Do NOT put settings
+ for use by your tests here.
+ -->
+ <appSettings>
+ <!--
+ Specify the location to be used by .NET for the cache
+ -->
+ <add key="shadowfiles.path" value="%temp%\nunit20\ShadowCopyCache" />
+ </appSettings>
+
+ <!-- Set the level for tracing NUnit itself -->
+ <!-- 0=Off 1=Error 2=Warning 3=Info 4=Debug -->
+ <system.diagnostics>
+ <switches>
+ <add name="NTrace" value="0" />
+ </switches>
+ </system.diagnostics>
+
+ <runtime>
+ <!-- We need this so test exceptions don't crash NUnit -->
+ <legacyUnhandledExceptionPolicy enabled="1" />
+
+ <!-- Look for addins in the addins directory for now -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <probing privatePath="lib;addins"/>
+ </assemblyBinding>
+
+ <!--
+ The following <assemblyBinding> section allows running nunit under
+ .NET 1.0 by redirecting assemblies. The appliesTo attribute
+ causes the section to be ignored except under .NET 1.0
+ on a machine with only the .NET version 1.0 runtime installed.
+ If application and its tests were built for .NET 1.1 you will
+ also need to redirect system assemblies in the test config file,
+ which controls loading of the tests.
+ -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
+ appliesTo="v1.0.3705">
+
+ <dependentAssembly>
+ <assemblyIdentity name="System"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Data"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Drawing"
+ publicKeyToken="b03f5f7f11d50a3a"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Windows.Forms"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Xml"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ </assemblyBinding>
+
+ </runtime>
+
+</configuration>
BIN  lib/NUnit/nunit-console.exe
Binary file not shown
87 lib/NUnit/nunit-console.exe.config
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<configuration>
+ <!--
+ Application settings for NUnit-console.exe. Do NOT put settings
+ for use by your tests here.
+ -->
+ <appSettings>
+ <!--
+ Specify the location to be used by .NET for the cache
+ -->
+ <add key="shadowfiles.path" value="%temp%\nunit20\ShadowCopyCache" />
+ </appSettings>
+
+ <!-- Set the level for tracing NUnit itself -->
+ <!-- 0=Off 1=Error 2=Warning 3=Info 4=Debug -->
+ <system.diagnostics>
+ <switches>
+ <add name="NTrace" value="0" />
+ </switches>
+ </system.diagnostics>
+
+ <runtime>
+ <!-- We need this so test exceptions don't crash NUnit -->
+ <legacyUnhandledExceptionPolicy enabled="1" />
+
+ <!-- Look for addins in the addins directory for now -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <probing privatePath="lib;addins"/>
+ </assemblyBinding>
+
+ <!--
+ The following <assemblyBinding> section allows running nunit under
+ .NET 1.0 by redirecting assemblies. The appliesTo attribute
+ causes the section to be ignored except under .NET 1.0
+ on a machine with only the .NET version 1.0 runtime installed.
+ If application and its tests were built for .NET 1.1 you will
+ also need to redirect system assemblies in the test config file,
+ which controls loading of the tests.
+ -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
+ appliesTo="v1.0.3705">
+
+ <dependentAssembly>
+ <assemblyIdentity name="System"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Data"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Drawing"
+ publicKeyToken="b03f5f7f11d50a3a"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Windows.Forms"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Xml"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ </assemblyBinding>
+
+ </runtime>
+
+</configuration>
BIN  lib/NUnit/nunit-x86.exe
Binary file not shown
95 lib/NUnit/nunit-x86.exe.config
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<configuration>
+ <!--
+ Application settings for NUnit-gui.exe. Do NOT put settings
+ for use by your tests here.
+ -->
+ <appSettings>
+ <!--
+ Specify the location to be used by .NET for the cache
+ -->
+ <add key="shadowfiles.path" value="%temp%\nunit20\ShadowCopyCache" />
+ <!--
+ Uncomment to specify the url to be used for help. If not used, the
+ default value is something like
+ file://localhost/C:/Program Files/NUnit 2.2/doc/index.html
+ This setting is provided in case your default browser doesn't
+ support this format.
+ -->
+ <!-- <add key="helpUrl" value="http://www.nunit.org" /> -->
+ </appSettings>
+
+ <!-- Set the level for tracing NUnit itself -->
+ <!-- 0=Off 1=Error 2=Warning 3=Info 4=Debug -->
+ <system.diagnostics>
+ <switches>
+ <add name="NTrace" value="0" />
+ </switches>
+ </system.diagnostics>
+
+ <runtime>
+ <!-- We need this so test exceptions don't crash NUnit -->
+ <legacyUnhandledExceptionPolicy enabled="1" />
+
+ <!-- Look for addins in the addins directory for now -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <probing privatePath="lib;addins" />
+ </assemblyBinding>
+
+ <!--
+ The following <assemblyBinding> section allows running nunit under
+ .NET 1.0 by redirecting assemblies. The appliesTo attribute
+ causes the section to be ignored except under .NET 1.0
+ on a machine with only the .NET version 1.0 runtime installed.
+ If application and its tests were built for .NET 1.1 you will
+ also need to redirect system assemblies in the test config file,
+ which controls loading of the tests.
+ -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
+ appliesTo="v1.0.3705">
+
+ <dependentAssembly>
+ <assemblyIdentity name="System"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Data"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Drawing"
+ publicKeyToken="b03f5f7f11d50a3a"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Windows.Forms"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Xml"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ </assemblyBinding>
+
+ </runtime>
+
+</configuration>
BIN  lib/NUnit/nunit.exe
Binary file not shown
95 lib/NUnit/nunit.exe.config
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<configuration>
+ <!--
+ Application settings for NUnit-gui.exe. Do NOT put settings
+ for use by your tests here.
+ -->
+ <appSettings>
+ <!--
+ Specify the location to be used by .NET for the cache
+ -->
+ <add key="shadowfiles.path" value="%temp%\nunit20\ShadowCopyCache" />
+ <!--
+ Uncomment to specify the url to be used for help. If not used, the
+ default value is something like
+ file://localhost/C:/Program Files/NUnit 2.2/doc/index.html
+ This setting is provided in case your default browser doesn't
+ support this format.
+ -->
+ <!-- <add key="helpUrl" value="http://www.nunit.org" /> -->
+ </appSettings>
+
+ <!-- Set the level for tracing NUnit itself -->
+ <!-- 0=Off 1=Error 2=Warning 3=Info 4=Debug -->
+ <system.diagnostics>
+ <switches>
+ <add name="NTrace" value="0" />
+ </switches>
+ </system.diagnostics>
+
+ <runtime>
+ <!-- We need this so test exceptions don't crash NUnit -->
+ <legacyUnhandledExceptionPolicy enabled="1" />
+
+ <!-- Look for addins in the addins directory for now -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <probing privatePath="lib;addins" />
+ </assemblyBinding>
+
+ <!--
+ The following <assemblyBinding> section allows running nunit under
+ .NET 1.0 by redirecting assemblies. The appliesTo attribute
+ causes the section to be ignored except under .NET 1.0
+ on a machine with only the .NET version 1.0 runtime installed.
+ If application and its tests were built for .NET 1.1 you will
+ also need to redirect system assemblies in the test config file,
+ which controls loading of the tests.
+ -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
+ appliesTo="v1.0.3705">
+
+ <dependentAssembly>
+ <assemblyIdentity name="System"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Data"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Drawing"
+ publicKeyToken="b03f5f7f11d50a3a"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Windows.Forms"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Xml"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ </assemblyBinding>
+
+ </runtime>
+
+</configuration>
BIN  lib/NUnit/nunit.framework.dll
Binary file not shown
BIN  lib/NUnit/pnunit-agent.exe
Binary file not shown
87 lib/NUnit/pnunit-agent.exe.config
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<configuration>
+ <!--
+ Application settings for pnunit-agent.exe. Do NOT put settings
+ for use by your tests here.
+ -->
+ <appSettings>
+ <!--
+ Specify the location to be used by .NET for the cache
+ -->
+ <add key="shadowfiles.path" value="%temp%\nunit20\ShadowCopyCache" />
+ </appSettings>
+
+ <!-- Set the level for tracing NUnit itself -->
+ <!-- 0=Off 1=Error 2=Warning 3=Info 4=Debug -->
+ <system.diagnostics>
+ <switches>
+ <add name="NTrace" value="0" />
+ </switches>
+ </system.diagnostics>
+
+ <runtime>
+ <!-- We need this so test exceptions don't crash NUnit -->
+ <legacyUnhandledExceptionPolicy enabled="1" />
+
+ <!-- Look for addins in the addins directory for now -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <probing privatePath="framework;lib;addins"/>
+ </assemblyBinding>
+
+ <!--
+ The following <assemblyBinding> section allows running nunit under
+ .NET 1.0 by redirecting assemblies. The appliesTo attribute
+ causes the section to be ignored except under .NET 1.0
+ on a machine with only the .NET version 1.0 runtime installed.
+ If application and its tests were built for .NET 1.1 you will
+ also need to redirect system assemblies in the test config file,
+ which controls loading of the tests.
+ -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
+ appliesTo="v1.0.3705">
+
+ <dependentAssembly>
+ <assemblyIdentity name="System"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Data"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Drawing"
+ publicKeyToken="b03f5f7f11d50a3a"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Windows.Forms"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Xml"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ </assemblyBinding>
+
+ </runtime>
+
+</configuration>
BIN  lib/NUnit/pnunit-launcher.exe
Binary file not shown
87 lib/NUnit/pnunit-launcher.exe.config
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<configuration>
+ <!--
+ Application settings for pnunit-launch.exe. Do NOT put settings
+ for use by your tests here.
+ -->
+ <appSettings>
+ <!--
+ Specify the location to be used by .NET for the cache
+ -->
+ <add key="shadowfiles.path" value="%temp%\nunit20\ShadowCopyCache" />
+ </appSettings>
+
+ <!-- Set the level for tracing NUnit itself -->
+ <!-- 0=Off 1=Error 2=Warning 3=Info 4=Debug -->
+ <system.diagnostics>
+ <switches>
+ <add name="NTrace" value="0" />
+ </switches>
+ </system.diagnostics>
+
+ <runtime>
+ <!-- We need this so test exceptions don't crash NUnit -->
+ <legacyUnhandledExceptionPolicy enabled="1" />
+
+ <!-- Look for addins in the addins directory for now -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <probing privatePath="framework;lib;addins"/>
+ </assemblyBinding>
+
+ <!--
+ The following <assemblyBinding> section allows running nunit under
+ .NET 1.0 by redirecting assemblies. The appliesTo attribute
+ causes the section to be ignored except under .NET 1.0
+ on a machine with only the .NET version 1.0 runtime installed.
+ If application and its tests were built for .NET 1.1 you will
+ also need to redirect system assemblies in the test config file,
+ which controls loading of the tests.
+ -->
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
+ appliesTo="v1.0.3705">
+
+ <dependentAssembly>
+ <assemblyIdentity name="System"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Data"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Drawing"
+ publicKeyToken="b03f5f7f11d50a3a"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Windows.Forms"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ <dependentAssembly>
+ <assemblyIdentity name="System.Xml"
+ publicKeyToken="b77a5c561934e089"
+ culture="neutral"/>
+ <bindingRedirect oldVersion="1.0.5000.0"
+ newVersion="1.0.3300.0"/>
+ </dependentAssembly>
+
+ </assemblyBinding>
+
+ </runtime>
+
+</configuration>
BIN  lib/NUnit/pnunit.framework.dll
Binary file not shown
BIN  lib/NUnit/pnunit.tests.dll
Binary file not shown
4 lib/NUnit/provenance.txt
@@ -0,0 +1,4 @@
+NUnit-2.5.3.9345
+http://www.nunit.org/index.php?p=home
+Downloaded from the nunit site on 1/28/2010:
+http://launchpad.net/nunitv2/2.5.3/2.5.3/+download/NUnit-2.5.3.9345.zip
BIN  lib/NUnit/runFile.exe
Binary file not shown
43 lib/NUnit/runFile.exe.config
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+ <startup>
+ <supportedRuntime version="v2.0.50727" />
+ <supportedRuntime version="v2.0.50215" />
+ <supportedRuntime version="v2.0.40607" />
+ <supportedRuntime version="v1.1.4322" />
+ <supportedRuntime version="v1.0.3705" />
+
+ <requiredRuntime version="v1.0.3705" />
+ </startup>
+
+<!--
+ The following <runtime> section allows running nunit tests under
+ .NET 1.0 by redirecting assemblies. The appliesTo attribute
+ causes the section to be ignored except under .NET 1.0.
+ -->
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"
+ appliesTo="v1.0.3705">
+ <dependentAssembly>
+ <assemblyIdentity name="System" publicKeyToken="b77a5c561934e089" culture="" />
+ <bindingRedirect oldVersion="1.0.5000.0" newVersion="1.0.3300.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Data" publicKeyToken="b77a5c561934e089" culture="" />
+ <bindingRedirect oldVersion="1.0.5000.0" newVersion="1.0.3300.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Drawing" publicKeyToken="b03f5f7f11d50a3a" culture="" />
+ <bindingRedirect oldVersion="1.0.5000.0" newVersion="1.0.3300.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Windows.Forms" publicKeyToken="b77a5c561934e089" culture="" />
+ <bindingRedirect oldVersion="1.0.5000.0" newVersion="1.0.3300.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Xml" publicKeyToken="b77a5c561934e089" culture="" />
+ <bindingRedirect oldVersion="1.0.5000.0" newVersion="1.0.3300.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration>
2  lib/NUnit/runpnunit.bat
@@ -0,0 +1,2 @@
+start pnunit-agent agent.conf
+pnunit-launcher test.conf
24 lib/NUnit/test.conf
@@ -0,0 +1,24 @@
+<TestGroup>
+ <ParallelTests>
+
+ <ParallelTest>
+ <Name>Testing</Name>
+ <Tests>
+ <TestConf>
+ <Name>Testing</Name>
+ <Assembly>pnunit.tests.dll</Assembly>
+ <TestToRun>TestLibraries.Testing.EqualTo19</TestToRun>
+ <Machine>localhost:8080</Machine>
+ <TestParams>
+ <string>..\server</string> <!-- server dir -->
+ <string></string> <!-- database server -->
+ <string></string><!-- conn string -->
+ </TestParams>
+ </TestConf>
+
+ </Tests>
+ </ParallelTest>
+
+
+ </ParallelTests>
+</TestGroup>
346 src/LinqToHtml.5.1.ReSharper
@@ -0,0 +1,346 @@
+<Configuration>
+ <CodeStyleSettings>
+ <ExternalPath IsNull="False">
+ </ExternalPath>
+ <Sharing>SOLUTION</Sharing>
+ <CSharp>
+ <FormatSettings>
+ <BLANK_LINES_AROUND_FIELD>0</BLANK_LINES_AROUND_FIELD>
+ <BLANK_LINES_BETWEEN_USING_GROUPS>1</BLANK_LINES_BETWEEN_USING_GROUPS>
+ <CASE_BLOCK_BRACES>NEXT_LINE</CASE_BLOCK_BRACES>
+ <FORCE_ATTRIBUTE_STYLE>SEPARATE</FORCE_ATTRIBUTE_STYLE>
+ <FORCE_FOR_BRACES_STYLE>ALWAYS_ADD</FORCE_FOR_BRACES_STYLE>
+ <FORCE_FOREACH_BRACES_STYLE>ALWAYS_ADD</FORCE_FOREACH_BRACES_STYLE>
+ <FORCE_IFELSE_BRACES_STYLE>ALWAYS_ADD</FORCE_IFELSE_BRACES_STYLE>
+ <FORCE_WHILE_BRACES_STYLE>ALWAYS_ADD</FORCE_WHILE_BRACES_STYLE>
+ <INDENT_EMBRACED_INITIALIZER_BLOCK>False</INDENT_EMBRACED_INITIALIZER_BLOCK>
+ <KEEP_BLANK_LINES_IN_CODE>1</KEEP_BLANK_LINES_IN_CODE>
+ <KEEP_BLANK_LINES_IN_DECLARATIONS>1</KEEP_BLANK_LINES_IN_DECLARATIONS>
+ <MODIFIERS_ORDER IsNull="False">
+ <Item>public</Item>
+ <Item>protected</Item>
+ <Item>internal</Item>
+ <Item>private</Item>
+ <Item>new</Item>
+ <Item>abstract</Item>
+ <Item>virtual</Item>
+ <Item>override</Item>
+ <Item>sealed</Item>
+ <Item>static</Item>
+ <Item>readonly</Item>
+ <Item>extern</Item>
+ <Item>unsafe</Item>
+ <Item>volatile</Item>
+ </MODIFIERS_ORDER>
+ <PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE>False</PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE>
+ <PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE>False</PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE>
+ <PLACE_SIMPLE_LINQ_ON_SINGLE_LINE>False</PLACE_SIMPLE_LINQ_ON_SINGLE_LINE>
+ <PLACE_TYPE_CONSTRAINTS_ON_SAME_LINE>False</PLACE_TYPE_CONSTRAINTS_ON_SAME_LINE>
+ <SIMPLE_EMBEDDED_STATEMENT_STYLE>LINE_BREAK</SIMPLE_EMBEDDED_STATEMENT_STYLE>
+ <SPACE_AFTER_ATTRIBUTE_COLON>False</SPACE_AFTER_ATTRIBUTE_COLON>
+ <SPACE_AFTER_TYPECAST_PARENTHESES>False</SPACE_AFTER_TYPECAST_PARENTHESES>
+ <SPACE_AROUND_MULTIPLICATIVE_OP>True</SPACE_AROUND_MULTIPLICATIVE_OP>
+ <SPACE_BEFORE_SIZEOF_PARENTHESES>False</SPACE_BEFORE_SIZEOF_PARENTHESES>
+ <SPACE_BEFORE_TYPEOF_PARENTHESES>False</SPACE_BEFORE_TYPEOF_PARENTHESES>
+ <SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES>True</SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES>
+ <WRAP_ARGUMENTS_STYLE>CHOP_IF_LONG</WRAP_ARGUMENTS_STYLE>
+ <WRAP_EXTENDS_LIST_STYLE>CHOP_IF_LONG</WRAP_EXTENDS_LIST_STYLE>
+ <WRAP_LINES>False</WRAP_LINES>
+ <WRAP_MULTIPLE_TYPE_PARAMEER_CONSTRAINTS_STYLE>CHOP_ALWAYS</WRAP_MULTIPLE_TYPE_PARAMEER_CONSTRAINTS_STYLE>
+ <WRAP_OBJECT_AND_COLLECTION_INITIALIZER_STYLE>CHOP_ALWAYS</WRAP_OBJECT_AND_COLLECTION_INITIALIZER_STYLE>
+ <WRAP_PARAMETERS_STYLE>CHOP_IF_LONG</WRAP_PARAMETERS_STYLE>
+ </FormatSettings>
+ <UsingsSettings />
+ <Naming2>
+ <EventHandlerPatternLong>$object$_On$event$</EventHandlerPatternLong>
+ <EventHandlerPatternShort>$event$Handler</EventHandlerPatternShort>
+ <ExceptionName IsNull="False">
+ </ExceptionName>
+ <OverrideDefaultSettings>True</OverrideDefaultSettings>
+ <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="TypesAndNamespaces" />
+ <PredefinedRule Inspect="True" Prefix="I" Suffix="" Style="AaBb" ElementKind="Interfaces" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="TypeParameters" />
+ <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="MethodPropertyEvent" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Locals" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="LocalConstants" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Parameters" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PublicFields" />
+ <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateInstanceFields" />
+ <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Constants" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateConstants" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="StaticReadonly" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateStaticReadonly" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" />
+ <Abbreviation Text="ID" />
+ </Naming2>
+ <CustomMemberReorderingPatterns><![CDATA[<?xml version="1.0" encoding="utf-8" ?>
+
+<!--
+I. Overall
+
+I.1 Each pattern can have <Match>....</Match> element. For the given type declaration, the pattern with the match, evaluated to 'true' with the largest weight, will be used
+I.2 Each pattern consists of the sequence of <Entry>...</Entry> elements. Type member declarations are distributed between entries
+I.3 If pattern has RemoveAllRegions="true" attribute, then all regions will be cleared prior to reordering. Otherwise, only auto-generated regions will be cleared
+I.4 The contents of each entry is sorted by given keys (First key is primary, next key is secondary, etc). Then the declarations are grouped and en-regioned by given property
+
+II. Available match operands
+
+Each operand may have Weight="..." attribute. This weight will be added to the match weight if the operand is evaluated to 'true'.
+The default weight is 1
+
+II.1 Boolean functions:
+II.1.1 <And>....</And>
+II.1.2 <Or>....</Or>
+II.1.3 <Not>....</Not>
+
+II.2 Operands
+II.2.1 <Kind Is="..."/>. Kinds are: class, struct, interface, enum, delegate, type, constructor, destructor, property, indexer, method, operator, field, constant, event, member
+II.2.2 <Name Is="..." [IgnoreCase="true/false"] />. The 'Is' attribute contains regular expression
+II.2.3 <HasAttribute CLRName="..." [Inherit="true/false"] />. The 'CLRName' attribute contains regular expression
+II.2.4 <Access Is="..."/>. The 'Is' values are: public, protected, internal, protected internal, private
+II.2.5 <Static/>
+II.2.6 <Abstract/>
+II.2.7 <Virtual/>
+II.2.8 <Override/>
+II.2.9 <Sealed/>
+II.2.10 <Readonly/>
+II.2.11 <ImplementsInterface CLRName="..."/>. The 'CLRName' attribute contains regular expression
+II.2.12 <HandlesEvent />
+-->
+
+<Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns">
+
+ <!--Do not reorder COM interfaces and structs marked by StructLayout attribute-->
+ <Pattern>
+ <Match>
+ <Or Weight="100">
+ <And>
+ <Kind Is="interface"/>
+ <HasAttribute CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute"/>
+ </And>
+ <HasAttribute CLRName="System.Runtime.InteropServices.StructLayoutAttribute"/>
+ </Or>
+ </Match>
+ </Pattern>
+
+ <!--Special formatting of NUnit test fixture-->
+ <Pattern RemoveAllRegions="true">
+ <Match>
+ <And Weight="100">
+ <Kind Is="class"/>
+ <HasAttribute CLRName="NUnit.Framework.TestFixtureAttribute" Inherit="true"/>
+ </And>
+ </Match>
+
+ <!--fields and constants-->
+ <Entry>
+ <Match>
+ <Or>
+ <Kind Is="constant"/>
+ <Kind Is="field"/>
+ </Or>
+ </Match>
+ <Sort>
+ <Kind Order="constant field"/>
+ <Static/>
+ <Readonly/>
+ <Name/>
+ </Sort>
+ </Entry>
+
+ <!--Fixture Setup/Teardown-->
+ <Entry>
+ <Match>
+ <And>
+ <Kind Is="method"/>
+ <Or>
+ <HasAttribute CLRName="NUnit.Framework.TestFixtureSetUpAttribute" Inherit="true"/>
+ <HasAttribute CLRName="NUnit.Framework.TestFixtureTearDownAttribute" Inherit="true"/>
+ </Or>
+ </And>
+ </Match>
+ </Entry>
+
+ <!--Setup/Teardown-->
+ <Entry>
+ <Match>
+ <And>
+ <Kind Is="method"/>
+ <Or>
+ <HasAttribute CLRName="NUnit.Framework.SetUpAttribute" Inherit="true"/>
+ <HasAttribute CLRName="NUnit.Framework.TearDownAttribute" Inherit="true"/>
+ </Or>
+ </And>
+ </Match>
+ </Entry>
+
+ <!--Test methods-->
+ <Entry>
+ <Match>
+ <And Weight="100">
+ <Kind Is="method"/>
+ <HasAttribute CLRName="NUnit.Framework.TestAttribute" Inherit="false"/>
+ </And>
+ </Match>
+ <Sort>
+ <Name/>
+ </Sort>
+ </Entry>
+
+ <!--All other members-->
+ <Entry>
+ <Sort>
+ <Name/>
+ </Sort>
+ </Entry>
+
+ </Pattern>
+
+ <!--Default pattern-->
+ <Pattern>
+
+ <!--public delegate-->
+ <Entry>
+ <Match>
+ <And Weight="100">
+ <Access Is="public"/>
+ <Kind Is="delegate"/>
+ </And>
+ </Match>
+ <Sort>
+ <Name/>
+ </Sort>
+ </Entry>
+
+ <!--public enum-->
+ <Entry>
+ <Match>
+ <And Weight="100">
+ <Access Is="public"/>
+ <Kind Is="enum"/>
+ </And>
+ </Match>
+ <Sort>
+ <Name/>
+ </Sort>
+ </Entry>
+
+ <!--fields and constants-->
+ <Entry>
+ <Match>
+ <Or>
+ <Kind Is="constant"/>
+ <Kind Is="field"/>
+ <Kind Is="event"/>
+ </Or>
+ </Match>
+ <Sort>
+ <Kind Order="constant field"/>
+ <Static/>
+ <Readonly/>
+ <Name/>
+ </Sort>
+ </Entry>
+
+ <!--Constructors. Place static one first-->
+ <Entry>
+ <Match>
+ <Kind Is="constructor"/>
+ </Match>
+ <Sort>
+ <Static/>
+ </Sort>
+ </Entry>
+
+ <!--properties, indexers-->
+ <Entry>
+ <Match>
+ <Or>
+ <Kind Is="property"/>
+ <Kind Is="indexer"/>
+ </Or>
+ </Match>
+ <Sort>
+ <Name/>
+ </Sort>
+ </Entry>
+
+ <!--interface implementations-->
+ <Entry>
+ <Match>
+ <And Weight="100">
+ <Kind Is="member"/>
+ <ImplementsInterface/>
+ </And>
+ </Match>
+ <Sort>
+ <ImplementsInterface Immediate="true"/>
+ </Sort>
+ </Entry>
+
+ <!--all other members-->
+ <Entry>
+ <Sort>
+ <Name/>
+ </Sort>
+ </Entry>
+
+ <!--nested types-->
+ <Entry>
+ <Match>
+ <Kind Is="type"/>
+ </Match>
+ <Sort>
+ <Name/>
+ </Sort>
+ </Entry>
+ </Pattern>
+
+</Patterns>
+]]></CustomMemberReorderingPatterns>
+ </CSharp>
+ <VB>
+ <FormatSettings />
+ <ImportsSettings />
+ <Naming2>
+ <EventHandlerPatternLong>$object$_On$event$</EventHandlerPatternLong>
+ <EventHandlerPatternShort>$event$Handler</EventHandlerPatternShort>
+ </Naming2>
+ </VB>
+ <Web>
+ <Naming2 />
+ </Web>
+ <Xaml>
+ <Naming2 />
+ </Xaml>
+ <XML>
+ <FormatSettings />
+ </XML>
+ <GenerateMemberBody />
+ <Naming2>
+ <EventHandlerPatternLong>$object$_On$event$</EventHandlerPatternLong>
+ <EventHandlerPatternShort>$event$Handler</EventHandlerPatternShort>
+ <ExceptionName IsNull="False">
+ </ExceptionName>
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Locals" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Parameters" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="TypesAndNamespaces" />
+ <PredefinedRule Inspect="True" Prefix="I" Suffix="" Style="AaBb" ElementKind="Interfaces" />
+ <PredefinedRule Inspect="True" Prefix="T" Suffix="" Style="AaBb" ElementKind="TypeParameters" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="MethodPropertyEvent" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="LocalConstants" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PublicFields" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Constants" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="StaticReadonly" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" />
+ <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateInstanceFields" />
+ <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="PrivateStaticFields" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateConstants" />
+ <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PrivateStaticReadonly" />
+ <Abbreviation Text="DTO" />
+ </Naming2>
+ </CodeStyleSettings>
+</Configuration>
185 src/LinqToHtml.Tests/HTMLDocumentTests.cs
@@ -0,0 +1,185 @@
+using System.Collections.Generic;
+using System.Linq;
+
+using FluentAssert;
+
+using NUnit.Framework;
+
+namespace LinqToHtml.Tests
+{
+ public class HTMLDocumentTests
+ {
+ [TestFixture]
+ public class When_asked_for_all_descendant_tags
+ {
+ private int _expectedTagCount;
+ private string _html;
+ private List<HTMLTag> _result;
+
+ [Test]
+ public void Given_a_basic_html_document()
+ {
+ Test.Verify(
+ with_a_basic_html_document,
+ when_asked_for_all_descendant_tags,
+ should_not_return_null,
+ should_not_return_an_empty_list,
+ should_return_the_correct_number_of_tags,
+ should_return_the_head_tag,
+ should_return_the_title_tag,
+ should_return_the_body_tag
+ );
+ }
+
+ private void should_not_return_an_empty_list()
+ {
+ _result.Count.ShouldNotBeEqualTo(0);
+ }
+
+ private void should_not_return_null()
+ {
+ _result.ShouldNotBeNull();
+ }
+
+ private void should_return_the_body_tag()
+ {
+ _result.Single(x => x.Name == "body");
+ }
+
+ private void should_return_the_correct_number_of_tags()
+ {
+ _result.Count.ShouldBeEqualTo(_expectedTagCount);
+ }
+
+ private void should_return_the_head_tag()
+ {
+ _result.Single(x => x.Name == "head");
+ }
+
+ private void should_return_the_title_tag()
+ {
+ _result.Single(x => x.Name == "title");
+ }
+
+ private void when_asked_for_all_descendant_tags()
+ {
+ _result = HTMLParser.Parse(_html)
+ .AllDescendantTags.ToList();
+ }
+
+ private void with_a_basic_html_document()
+ {
+ _html = "<html><head><title>The Title</title></head><body>Hello World</body></html>";
+ _expectedTagCount = 4; // html, head, title, body
+ }
+ }
+
+ [TestFixture]
+ public class When_asked_for_the_BODY_tag
+ {
+ private string _html;
+ private HTMLTag _result;
+
+ [Test]
+ public void Given_an_html_document_that_has_a_child_BODY_tag()
+ {
+ Test.Verify(
+ with_a_document_that_has_a_child_BODY_tag,
+ when_asked_for_the_BODY_tag,
+ should_not_return_null,
+ should_return_the_BODY_tag
+ );
+ }
+
+ [Test]
+ public void Given_only_a_BODY_tag()
+ {
+ Test.Verify(
+ with_only_a_BODY_tag,
+ when_asked_for_the_BODY_tag,
+ should_not_return_null,
+ should_return_the_BODY_tag
+ );
+ }
+
+ private void should_not_return_null()
+ {
+ _result.ShouldNotBeNull();
+ }
+
+ private void should_return_the_BODY_tag()
+ {
+ _result.NameEqualsIgnoreCase("BODY").ShouldBeTrue();
+ }
+
+ private void when_asked_for_the_BODY_tag()
+ {
+ _result = HTMLParser.Parse(_html).Body;
+ }
+
+ private void with_a_document_that_has_a_child_BODY_tag()
+ {
+ _html = "<html><body></body></html>";
+ }
+
+ private void with_only_a_BODY_tag()
+ {
+ _html = "<body></body>";
+ }
+ }
+
+ [TestFixture]
+ public class When_asked_for_the_HEAD_tag
+ {
+ private string _html;
+ private HTMLTag _result;
+
+ [Test]
+ public void Given_an_html_document_that_has_a_child_HEAD_tag()
+ {
+ Test.Verify(
+ with_a_document_that_has_a_child_HEAD_tag,
+ when_asked_for_the_HEAD_tag,
+ should_not_return_null,
+ should_return_the_HEAD_tag
+ );
+ }
+
+ [Test]
+ public void Given_only_a_HEAD_tag()
+ {
+ Test.Verify(
+ with_only_a_HEAD_tag,
+ when_asked_for_the_HEAD_tag,
+ should_not_return_null,
+ should_return_the_HEAD_tag
+ );
+ }
+
+ private void should_not_return_null()
+ {
+ _result.ShouldNotBeNull();
+ }
+
+ private void should_return_the_HEAD_tag()
+ {
+ _result.NameEqualsIgnoreCase("HEAD").ShouldBeTrue();
+ }
+
+ private void when_asked_for_the_HEAD_tag()
+ {
+ _result = HTMLParser.Parse(_html).Head;
+ }
+
+ private void with_a_document_that_has_a_child_HEAD_tag()
+ {
+ _html = "<html><head></head></html>";
+ }
+
+ private void with_only_a_HEAD_tag()
+ {
+ _html = "<head></head>";
+ }
+ }
+ }
+}
49 src/LinqToHtml.Tests/HTMLParserTests.cs
@@ -0,0 +1,49 @@
+using FluentAssert;
+
+using NUnit.Framework;