diff options
| author | Remko Tronçon <git@el-tramo.be> | 2010-11-10 07:30:52 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2010-11-10 07:30:52 (GMT) | 
| commit | 896e2a121d58931740ea8becc0544e10e629c6c5 (patch) | |
| tree | a5e0c748ff472357dfbde89292eccac08900cee9 | |
| parent | afae15f7cf212c993da8264a4ae89cf8729b3f86 (diff) | |
| download | swift-896e2a121d58931740ea8becc0544e10e629c6c5.zip swift-896e2a121d58931740ea8becc0544e10e629c6c5.tar.bz2 | |
Refactored TLS tests.
| -rw-r--r-- | .cproject | 290 | ||||
| -rw-r--r-- | .project | 8 | ||||
| -rw-r--r-- | Swiften/QA/OpenSSLTest/.gitignore | 1 | ||||
| -rw-r--r-- | Swiften/QA/OpenSSLTest/OpenSSLCertificateTest.cpp | 56 | ||||
| -rw-r--r-- | Swiften/QA/SConscript | 6 | ||||
| -rw-r--r-- | Swiften/QA/TLSTest/.gitignore | 1 | ||||
| -rw-r--r-- | Swiften/QA/TLSTest/CertificateTest.cpp | 96 | ||||
| -rw-r--r-- | Swiften/QA/TLSTest/SConscript (renamed from Swiften/QA/OpenSSLTest/SConscript) | 10 | ||||
| -rw-r--r-- | Swiften/QA/TLSTest/jabber_org.crt (renamed from Swiften/QA/OpenSSLTest/jabber_org.crt) | bin | 2081 -> 2081 bytes | 
9 files changed, 401 insertions, 67 deletions
| @@ -2037,6 +2037,296 @@  				</scannerConfigBuildInfo>  			</storageModule>  		</cconfiguration> +		<cconfiguration id="0.980756260.1834106966.1405025274.337712890"> +			<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="0.980756260.1834106966.1405025274.337712890" moduleId="org.eclipse.cdt.core.settings" name="TLS Test"> +				<externalSettings/> +				<extensions> +					<extension id="org.eclipse.cdt.core.MachO64" point="org.eclipse.cdt.core.BinaryParser"/> +					<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/> +					<extension id="org.eclipse.cdt.core.PE" point="org.eclipse.cdt.core.BinaryParser"/> +					<extension id="org.eclipse.cdt.core.GNU_ELF" point="org.eclipse.cdt.core.BinaryParser"/> +					<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +					<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +					<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/> +					<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +					<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +					<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> +				</extensions> +			</storageModule> +			<storageModule moduleId="cdtBuildSystem" version="4.0.0"> +				<configuration artifactName="${ProjName}" buildProperties="" description="" id="0.980756260.1834106966.1405025274.337712890" name="TLS Test" parent="org.eclipse.cdt.build.core.prefbase.cfg"> +					<folderInfo id="0.980756260.1834106966.1405025274.337712890." name="/" resourcePath=""> +						<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.756303402" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain"> +							<targetPlatform binaryParser="org.eclipse.cdt.core.MachO64;org.eclipse.cdt.core.ELF;org.eclipse.cdt.core.PE;org.eclipse.cdt.core.GNU_ELF" id="org.eclipse.cdt.build.core.prefbase.toolchain.756303402.2066002052" name=""/> +							<builder arguments="${ProjDirPath}/3rdParty/SCons/scons.py" autoBuildTarget="test=all Swiften/QA/TLSTest" buildPath="" cleanBuildTarget="-c" command="python" enableAutoBuild="true" id="org.eclipse.cdt.build.core.settings.default.builder.909263144" incrementalBuildTarget="test=all Swiften/QA/TLSTest" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/> +							<tool id="org.eclipse.cdt.build.core.settings.holder.libs.1062191353" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/> +							<tool id="org.eclipse.cdt.build.core.settings.holder.610753786" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder"> +								<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1253944666" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/> +							</tool> +							<tool id="org.eclipse.cdt.build.core.settings.holder.1437596827" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder"> +								<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1873311587" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/> +							</tool> +							<tool id="org.eclipse.cdt.build.core.settings.holder.987007708" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder"> +								<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1309975259" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/> +							</tool> +						</toolChain> +					</folderInfo> +				</configuration> +			</storageModule> +			<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/> +			<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> +			<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/> +			<storageModule moduleId="org.eclipse.cdt.core.language.mapping"/> +			<storageModule moduleId="scannerConfiguration"> +				<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> +				<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> +					<buildOutputProvider> +						<openAction enabled="true" filePath=""/> +						<parser enabled="true"/> +					</buildOutputProvider> +					<scannerInfoProvider id="specsFile"> +						<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> +						<parser enabled="true"/> +					</scannerInfoProvider> +				</profile> +				<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> +					<buildOutputProvider> +						<openAction enabled="true" filePath=""/> +						<parser enabled="true"/> +					</buildOutputProvider> +					<scannerInfoProvider id="makefileGenerator"> +						<runAction arguments="-E -P -v -dD" command="" useDefault="true"/> +						<parser enabled="true"/> +					</scannerInfoProvider> +				</profile> +				<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> +					<buildOutputProvider> +						<openAction enabled="true" filePath=""/> +						<parser enabled="true"/> +					</buildOutputProvider> +					<scannerInfoProvider id="specsFile"> +						<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> +						<parser enabled="true"/> +					</scannerInfoProvider> +				</profile> +				<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> +					<buildOutputProvider> +						<openAction enabled="true" filePath=""/> +						<parser enabled="true"/> +					</buildOutputProvider> +					<scannerInfoProvider id="specsFile"> +						<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> +						<parser enabled="true"/> +					</scannerInfoProvider> +				</profile> +				<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> +					<buildOutputProvider> +						<openAction enabled="true" filePath=""/> +						<parser enabled="true"/> +					</buildOutputProvider> +					<scannerInfoProvider id="specsFile"> +						<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> +						<parser enabled="true"/> +					</scannerInfoProvider> +				</profile> +				<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> +					<buildOutputProvider> +						<openAction enabled="true" filePath=""/> +						<parser enabled="true"/> +					</buildOutputProvider> +					<scannerInfoProvider id="specsFile"> +						<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/> +						<parser enabled="true"/> +					</scannerInfoProvider> +				</profile> +				<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> +					<buildOutputProvider> +						<openAction enabled="true" filePath=""/> +						<parser enabled="true"/> +					</buildOutputProvider> +					<scannerInfoProvider id="specsFile"> +						<runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/> +						<parser enabled="true"/> +					</scannerInfoProvider> +				</profile> +				<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> +					<buildOutputProvider> +						<openAction enabled="true" filePath=""/> +						<parser enabled="true"/> +					</buildOutputProvider> +					<scannerInfoProvider id="specsFile"> +						<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/> +						<parser enabled="true"/> +					</scannerInfoProvider> +				</profile> +				<scannerConfigBuildInfo instanceId="0.980756260.1834106966.1269306596"> +					<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> +					<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="makefileGenerator"> +							<runAction arguments="-E -P -v -dD" command="" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +				</scannerConfigBuildInfo> +				<scannerConfigBuildInfo instanceId="0.980756260"> +					<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> +					<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="makefileGenerator"> +							<runAction arguments="-E -P -v -dD" command="" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +					<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC"> +						<buildOutputProvider> +							<openAction enabled="true" filePath=""/> +							<parser enabled="true"/> +						</buildOutputProvider> +						<scannerInfoProvider id="specsFile"> +							<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/> +							<parser enabled="true"/> +						</scannerInfoProvider> +					</profile> +				</scannerConfigBuildInfo> +			</storageModule> +		</cconfiguration>  	</storageModule>  	<storageModule moduleId="cdtBuildSystem" version="4.0.0">  		<project id="swift.null.189117846" name="swift"/> @@ -18,7 +18,7 @@  				</dictionary>  				<dictionary>  					<key>org.eclipse.cdt.make.core.autoBuildTarget</key> -					<value></value> +					<value>dist=1 Swift</value>  				</dictionary>  				<dictionary>  					<key>org.eclipse.cdt.make.core.buildArguments</key> @@ -29,6 +29,10 @@  					<value>python</value>  				</dictionary>  				<dictionary> +					<key>org.eclipse.cdt.make.core.buildLocation</key> +					<value></value> +				</dictionary> +				<dictionary>  					<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>  					<value>-c</value>  				</dictionary> @@ -50,7 +54,7 @@  				</dictionary>  				<dictionary>  					<key>org.eclipse.cdt.make.core.fullBuildTarget</key> -					<value></value> +					<value>dist=1 Swift</value>  				</dictionary>  				<dictionary>  					<key>org.eclipse.cdt.make.core.stopOnError</key> diff --git a/Swiften/QA/OpenSSLTest/.gitignore b/Swiften/QA/OpenSSLTest/.gitignore deleted file mode 100644 index 27154e7..0000000 --- a/Swiften/QA/OpenSSLTest/.gitignore +++ /dev/null @@ -1 +0,0 @@ -OpenSSLTest diff --git a/Swiften/QA/OpenSSLTest/OpenSSLCertificateTest.cpp b/Swiften/QA/OpenSSLTest/OpenSSLCertificateTest.cpp deleted file mode 100644 index 59aee47..0000000 --- a/Swiften/QA/OpenSSLTest/OpenSSLCertificateTest.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2010 Remko Tronçon - * Licensed under the GNU General Public License v3. - * See Documentation/Licenses/GPLv3.txt for more information. - */ - -#include <cppunit/extensions/HelperMacros.h> -#include <cppunit/extensions/TestFactoryRegistry.h> -#include <boost/bind.hpp> - -#include "Swiften/TLS/OpenSSL/OpenSSLCertificate.h" -#include "SwifTools/Application/PlatformApplicationPathProvider.h" - -using namespace Swift; - -class OpenSSLCertificateTest : public CppUnit::TestFixture { -		CPPUNIT_TEST_SUITE(OpenSSLCertificateTest); -		CPPUNIT_TEST(testConstructFromDER); -		CPPUNIT_TEST(testToDER); -		CPPUNIT_TEST(testGetSubjectName); -		CPPUNIT_TEST_SUITE_END(); - -	public: -		void setUp() { -			pathProvider = new PlatformApplicationPathProvider("FileReadBytestreamTest"); -			certificateData.readFromFile((pathProvider->getExecutableDir() / "jabber_org.crt").string()); -		} - -		void tearDown() { -			delete pathProvider; -		} - -		void testConstructFromDER() { -			OpenSSLCertificate testling(certificateData); - -			CPPUNIT_ASSERT_EQUAL(String("*.jabber.org"), testling.getCommonNames()[0]); -		} -		 -		void testToDER() { -			OpenSSLCertificate testling(certificateData); - -			CPPUNIT_ASSERT_EQUAL(certificateData, testling.toDER()); -		} - -		void testGetSubjectName() { -			OpenSSLCertificate testling(certificateData); - -			CPPUNIT_ASSERT_EQUAL(String("/description=114072-VMk8pdi1aj5kTXxO/C=US/ST=Colorado/L=Denver/O=Peter Saint-Andre/OU=StartCom Trusted Certificate Member/CN=*.jabber.org/emailAddress=hostmaster@jabber.org"), testling.getSubjectName()); -		} -	 -	private: -		PlatformApplicationPathProvider* pathProvider; -		ByteArray certificateData; -}; - -CPPUNIT_TEST_SUITE_REGISTRATION(OpenSSLCertificateTest); diff --git a/Swiften/QA/SConscript b/Swiften/QA/SConscript index 97b6ed0..b885909 100644 --- a/Swiften/QA/SConscript +++ b/Swiften/QA/SConscript @@ -6,7 +6,5 @@ SConscript(dirs = [  		"ClientTest",  #		"DNSSDTest",  		"StorageTest", -	]) - -if swiften_env.get("HAVE_OPENSSL", False) : -	SConscript(dirs = ["OpenSSLTest"]) +		"TLSTest", +	])
\ No newline at end of file diff --git a/Swiften/QA/TLSTest/.gitignore b/Swiften/QA/TLSTest/.gitignore new file mode 100644 index 0000000..1ef40d7 --- /dev/null +++ b/Swiften/QA/TLSTest/.gitignore @@ -0,0 +1 @@ +TLSTest diff --git a/Swiften/QA/TLSTest/CertificateTest.cpp b/Swiften/QA/TLSTest/CertificateTest.cpp new file mode 100644 index 0000000..627887c --- /dev/null +++ b/Swiften/QA/TLSTest/CertificateTest.cpp @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2010 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include <cppunit/extensions/HelperMacros.h> +#include <cppunit/extensions/TestFactoryRegistry.h> +#include <boost/bind.hpp> + +#include "Swiften/TLS/CertificateFactory.h" +#include "SwifTools/Application/PlatformApplicationPathProvider.h" + +using namespace Swift; + +template<typename CERTIFICATE_FACTORY> +class CertificateTest : public CppUnit::TestFixture { +		CPPUNIT_TEST_SUITE(CertificateTest); +		CPPUNIT_TEST(testConstructFromDER); +		CPPUNIT_TEST(testToDER); +		CPPUNIT_TEST(testGetSubjectName); +		CPPUNIT_TEST(testGetCommonNames); +		CPPUNIT_TEST(testGetSRVNames); +		CPPUNIT_TEST(testGetDNSNames); +		CPPUNIT_TEST(testGetXMPPAddresses); +		CPPUNIT_TEST_SUITE_END(); + +	public: +		void setUp() { +			pathProvider = new PlatformApplicationPathProvider("FileReadBytestreamTest"); +			certificateData.readFromFile((pathProvider->getExecutableDir() / "jabber_org.crt").string()); +			certificateFactory = new CERTIFICATE_FACTORY(); +		} + +		void tearDown() { +			delete certificateFactory; +			delete pathProvider; +		} + +		void testConstructFromDER() { +			Certificate::ref testling = certificateFactory->createCertificateFromDER(certificateData); + +			CPPUNIT_ASSERT_EQUAL(String("*.jabber.org"), testling->getCommonNames()[0]); +		} +		 +		void testToDER() { +			Certificate::ref testling = certificateFactory->createCertificateFromDER(certificateData); + +			CPPUNIT_ASSERT_EQUAL(certificateData, testling->toDER()); +		} + +		void testGetSubjectName() { +			Certificate::ref testling = certificateFactory->createCertificateFromDER(certificateData); + +			CPPUNIT_ASSERT_EQUAL(String("/description=114072-VMk8pdi1aj5kTXxO/C=US/ST=Colorado/L=Denver/O=Peter Saint-Andre/OU=StartCom Trusted Certificate Member/CN=*.jabber.org/emailAddress=hostmaster@jabber.org"), testling->getSubjectName()); +		} + +		void testGetCommonNames() { +			Certificate::ref testling = certificateFactory->createCertificateFromDER(certificateData); + +			CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(testling->getCommonNames().size())); +			CPPUNIT_ASSERT_EQUAL(String("*.jabber.org"), testling->getCommonNames()[0]); +		} + +		void testGetSRVNames() { +			Certificate::ref testling = certificateFactory->createCertificateFromDER(certificateData); + +			CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(testling->getSRVNames().size())); +			CPPUNIT_ASSERT_EQUAL(String("*.jabber.org"), testling->getSRVNames()[0]); +		} + +		void testGetDNSNames() { +			Certificate::ref testling = certificateFactory->createCertificateFromDER(certificateData); + +			CPPUNIT_ASSERT_EQUAL(2, static_cast<int>(testling->getDNSNames().size())); +			CPPUNIT_ASSERT_EQUAL(String("*.jabber.org"), testling->getDNSNames()[0]); +			CPPUNIT_ASSERT_EQUAL(String("jabber.org"), testling->getDNSNames()[1]); +		} + +		void testGetXMPPAddresses() { +			Certificate::ref testling = certificateFactory->createCertificateFromDER(certificateData); + +			CPPUNIT_ASSERT_EQUAL(1, static_cast<int>(testling->getXMPPAddresses().size())); +			CPPUNIT_ASSERT_EQUAL(String("*.jabber.org"), testling->getXMPPAddresses()[0]); +		} +	 +	private: +		PlatformApplicationPathProvider* pathProvider; +		ByteArray certificateData; +		CertificateFactory* certificateFactory; +}; + +#ifdef HAVE_OPENSSL +#include "Swiften/TLS/OpenSSL/OpenSSLCertificateFactory.h" +CPPUNIT_TEST_SUITE_REGISTRATION(CertificateTest<OpenSSLCertificateFactory>); +#endif diff --git a/Swiften/QA/OpenSSLTest/SConscript b/Swiften/QA/TLSTest/SConscript index a3309f2..034336e 100644 --- a/Swiften/QA/OpenSSLTest/SConscript +++ b/Swiften/QA/TLSTest/SConscript @@ -10,9 +10,11 @@ if env["TEST"] :  	myenv.MergeFlags(myenv["CPPUNIT_FLAGS"])  	myenv.MergeFlags(myenv["BOOST_FLAGS"])  	myenv.MergeFlags(myenv["LIBIDN_FLAGS"]) -	myenv.MergeFlags(myenv["OPENSSL_FLAGS"]) - -	tester = myenv.Program("OpenSSLTest", [ -			"OpenSSLCertificateTest.cpp", +	if myenv.get("HAVE_OPENSSL") : +		myenv.MergeFlags(myenv["OPENSSL_FLAGS"]) +		myenv.Append(CPPDEFINES = ["HAVE_OPENSSL"]) +	 +	tester = myenv.Program("TLSTest", [ +			"CertificateTest.cpp",  		])  	myenv.Test(tester, "system") diff --git a/Swiften/QA/OpenSSLTest/jabber_org.crt b/Swiften/QA/TLSTest/jabber_org.crtBinary files differ index 5a9ddaa..5a9ddaa 100644 --- a/Swiften/QA/OpenSSLTest/jabber_org.crt +++ b/Swiften/QA/TLSTest/jabber_org.crt | 
 Swift
 Swift