From 015787fbb3152661144d21119bb9ea662a8ba0a3 Mon Sep 17 00:00:00 2001 From: Sam Tuke Date: Sun, 6 Jan 2013 18:38:35 +0000 Subject: All in-use unit tests now passing after merge --- apps/files_encryption/test/binary | Bin 0 -> 9734 bytes apps/files_encryption/test/crypt.php | 667 +++++++++++++++++++++ apps/files_encryption/test/keymanager.php | 132 ++++ .../test/legacy-encrypted-text.txt | Bin 0 -> 3360 bytes apps/files_encryption/test/proxy.php | 220 +++++++ apps/files_encryption/test/stream.php | 226 +++++++ apps/files_encryption/test/util.php | 210 +++++++ apps/files_encryption/test/zeros | Bin 0 -> 10238 bytes 8 files changed, 1455 insertions(+) create mode 100644 apps/files_encryption/test/binary create mode 100755 apps/files_encryption/test/crypt.php create mode 100644 apps/files_encryption/test/keymanager.php create mode 100644 apps/files_encryption/test/legacy-encrypted-text.txt create mode 100644 apps/files_encryption/test/proxy.php create mode 100644 apps/files_encryption/test/stream.php create mode 100755 apps/files_encryption/test/util.php create mode 100644 apps/files_encryption/test/zeros (limited to 'apps/files_encryption/test') diff --git a/apps/files_encryption/test/binary b/apps/files_encryption/test/binary new file mode 100644 index 00000000000..79bc99479da Binary files /dev/null and b/apps/files_encryption/test/binary differ diff --git a/apps/files_encryption/test/crypt.php b/apps/files_encryption/test/crypt.php new file mode 100755 index 00000000000..5a7820dc9da --- /dev/null +++ b/apps/files_encryption/test/crypt.php @@ -0,0 +1,667 @@ +, and + * Robin Appelman + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +//require_once "PHPUnit/Framework/TestCase.php"; +require_once realpath( dirname(__FILE__).'/../../../3rdparty/Crypt_Blowfish/Blowfish.php' ); +require_once realpath( dirname(__FILE__).'/../../../lib/base.php' ); +require_once realpath( dirname(__FILE__).'/../lib/crypt.php' ); +require_once realpath( dirname(__FILE__).'/../lib/keymanager.php' ); +require_once realpath( dirname(__FILE__).'/../lib/proxy.php' ); +require_once realpath( dirname(__FILE__).'/../lib/stream.php' ); +require_once realpath( dirname(__FILE__).'/../lib/util.php' ); +require_once realpath( dirname(__FILE__).'/../appinfo/app.php' ); + +use OCA\Encryption; + +// This has to go here because otherwise session errors arise, and the private +// encryption key needs to be saved in the session +\OC_User::login( 'admin', 'admin' ); + +/** + * @note It would be better to use Mockery here for mocking out the session + * handling process, and isolate calls to session class and data from the unit + * tests relating to them (stream etc.). However getting mockery to work and + * overload classes whilst also using the OC autoloader is difficult due to + * load order Pear errors. + */ + +class Test_Crypt extends \PHPUnit_Framework_TestCase { + + function setUp() { + + // set content for encrypting / decrypting in tests + $this->dataLong = file_get_contents( realpath( dirname(__FILE__).'/../lib/crypt.php' ) ); + $this->dataShort = 'hats'; + $this->dataUrl = realpath( dirname(__FILE__).'/../lib/crypt.php' ); + $this->legacyData = realpath( dirname(__FILE__).'/legacy-text.txt' ); + $this->legacyEncryptedData = realpath( dirname(__FILE__).'/legacy-encrypted-text.txt' ); + $this->randomKey = Encryption\Crypt::generateKey(); + + $keypair = Encryption\Crypt::createKeypair(); + $this->genPublicKey = $keypair['publicKey']; + $this->genPrivateKey = $keypair['privateKey']; + + $this->view = new \OC_FilesystemView( '/' ); + + \OC_User::setUserId( 'admin' ); + $this->userId = 'admin'; + $this->pass = 'admin'; + + \OC_Filesystem::init( '/' ); + \OC_Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => \OC_User::getHome($this->userId)), '/' ); + + } + + function tearDown() { + + } + + function testGenerateKey() { + + # TODO: use more accurate (larger) string length for test confirmation + + $key = Encryption\Crypt::generateKey(); + + $this->assertTrue( strlen( $key ) > 16 ); + + } + + function testGenerateIv() { + + $iv = Encryption\Crypt::generateIv(); + + $this->assertEquals( 16, strlen( $iv ) ); + + return $iv; + + } + + /** + * @depends testGenerateIv + */ + function testConcatIv( $iv ) { + + $catFile = Encryption\Crypt::concatIv( $this->dataLong, $iv ); + + // Fetch encryption metadata from end of file + $meta = substr( $catFile, -22 ); + + $identifier = substr( $meta, 0, 6); + + // Fetch IV from end of file + $foundIv = substr( $meta, 6 ); + + $this->assertEquals( '00iv00', $identifier ); + + $this->assertEquals( $iv, $foundIv ); + + // Remove IV and IV identifier text to expose encrypted content + $data = substr( $catFile, 0, -22 ); + + $this->assertEquals( $this->dataLong, $data ); + + return array( + 'iv' => $iv + , 'catfile' => $catFile + ); + + } + + /** + * @depends testConcatIv + */ + function testSplitIv( $testConcatIv ) { + + // Split catfile into components + $splitCatfile = Encryption\Crypt::splitIv( $testConcatIv['catfile'] ); + + // Check that original IV and split IV match + $this->assertEquals( $testConcatIv['iv'], $splitCatfile['iv'] ); + + // Check that original data and split data match + $this->assertEquals( $this->dataLong, $splitCatfile['encrypted'] ); + + } + + function testAddPadding() { + + $padded = Encryption\Crypt::addPadding( $this->dataLong ); + + $padding = substr( $padded, -2 ); + + $this->assertEquals( 'xx' , $padding ); + + return $padded; + + } + + /** + * @depends testAddPadding + */ + function testRemovePadding( $padded ) { + + $noPadding = Encryption\Crypt::RemovePadding( $padded ); + + $this->assertEquals( $this->dataLong, $noPadding ); + + } + + function testEncrypt() { + + $random = openssl_random_pseudo_bytes( 13 ); + + $iv = substr( base64_encode( $random ), 0, -4 ); // i.e. E5IG033j+mRNKrht + + $crypted = Encryption\Crypt::encrypt( $this->dataUrl, $iv, 'hat' ); + + $this->assertNotEquals( $this->dataUrl, $crypted ); + + } + + function testDecrypt() { + + $random = openssl_random_pseudo_bytes( 13 ); + + $iv = substr( base64_encode( $random ), 0, -4 ); // i.e. E5IG033j+mRNKrht + + $crypted = Encryption\Crypt::encrypt( $this->dataUrl, $iv, 'hat' ); + + $decrypt = Encryption\Crypt::decrypt( $crypted, $iv, 'hat' ); + + $this->assertEquals( $this->dataUrl, $decrypt ); + + } + + function testSymmetricEncryptFileContent() { + + # TODO: search in keyfile for actual content as IV will ensure this test always passes + + $crypted = Encryption\Crypt::symmetricEncryptFileContent( $this->dataShort, 'hat' ); + + $this->assertNotEquals( $this->dataShort, $crypted ); + + + $decrypt = Encryption\Crypt::symmetricDecryptFileContent( $crypted, 'hat' ); + + $this->assertEquals( $this->dataShort, $decrypt ); + + } + + // These aren't used for now +// function testSymmetricBlockEncryptShortFileContent() { +// +// $crypted = Encryption\Crypt::symmetricBlockEncryptFileContent( $this->dataShort, $this->randomKey ); +// +// $this->assertNotEquals( $this->dataShort, $crypted ); +// +// +// $decrypt = Encryption\Crypt::symmetricBlockDecryptFileContent( $crypted, $this->randomKey ); +// +// $this->assertEquals( $this->dataShort, $decrypt ); +// +// } +// +// function testSymmetricBlockEncryptLongFileContent() { +// +// $crypted = Encryption\Crypt::symmetricBlockEncryptFileContent( $this->dataLong, $this->randomKey ); +// +// $this->assertNotEquals( $this->dataLong, $crypted ); +// +// +// $decrypt = Encryption\Crypt::symmetricBlockDecryptFileContent( $crypted, $this->randomKey ); +// +// $this->assertEquals( $this->dataLong, $decrypt ); +// +// } + + function testSymmetricStreamEncryptShortFileContent() { + + $filename = 'tmp-'.time(); + + $cryptedFile = file_put_contents( 'crypt://' . $filename, $this->dataShort ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + + // Get file contents without using any wrapper to get it's actual contents on disk + $retreivedCryptedFile = $this->view->file_get_contents( $this->userId . '/files/' . $filename ); + + // Check that the file was encrypted before being written to disk + $this->assertNotEquals( $this->dataShort, $retreivedCryptedFile ); + + // Get private key + $encryptedPrivateKey = Encryption\Keymanager::getPrivateKey( $this->view, $this->userId ); + + $decryptedPrivateKey = Encryption\Crypt::symmetricDecryptFileContent( $encryptedPrivateKey, $this->pass ); + + + // Get keyfile + $encryptedKeyfile = Encryption\Keymanager::getFileKey( $this->view, $this->userId, $filename ); + + $decryptedKeyfile = Encryption\Crypt::keyDecrypt( $encryptedKeyfile, $decryptedPrivateKey ); + + + // Manually decrypt + $manualDecrypt = Encryption\Crypt::symmetricBlockDecryptFileContent( $retreivedCryptedFile, $decryptedKeyfile ); + + // Check that decrypted data matches + $this->assertEquals( $this->dataShort, $manualDecrypt ); + + } + + /** + * @brief Test that data that is written by the crypto stream wrapper + * @note Encrypted data is manually prepared and decrypted here to avoid dependency on success of stream_read + * @note If this test fails with truncate content, check that enough array slices are being rejoined to form $e, as the crypt.php file may have gotten longer and broken the manual + * reassembly of its data + */ + function testSymmetricStreamEncryptLongFileContent() { + + // Generate a a random filename + $filename = 'tmp-'.time(); + + // Save long data as encrypted file using stream wrapper + $cryptedFile = file_put_contents( 'crypt://' . $filename, $this->dataLong.$this->dataLong ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + // Get file contents without using any wrapper to get it's actual contents on disk + $retreivedCryptedFile = $this->view->file_get_contents( $this->userId . '/files/' . $filename ); + +// echo "\n\n\$retreivedCryptedFile = $retreivedCryptedFile\n\n"; + + // Check that the file was encrypted before being written to disk + $this->assertNotEquals( $this->dataLong.$this->dataLong, $retreivedCryptedFile ); + + // Manuallly split saved file into separate IVs and encrypted chunks + $r = preg_split('/(00iv00.{16,18})/', $retreivedCryptedFile, NULL, PREG_SPLIT_DELIM_CAPTURE); + + //print_r($r); + + // Join IVs and their respective data chunks + $e = array( $r[0].$r[1], $r[2].$r[3], $r[4].$r[5], $r[6].$r[7], $r[8].$r[9], $r[10].$r[11], $r[12].$r[13] );//.$r[11], $r[12].$r[13], $r[14] ); + + //print_r($e); + + + // Get private key + $encryptedPrivateKey = Encryption\Keymanager::getPrivateKey( $this->view, $this->userId ); + + $decryptedPrivateKey = Encryption\Crypt::symmetricDecryptFileContent( $encryptedPrivateKey, $this->pass ); + + + // Get keyfile + $encryptedKeyfile = Encryption\Keymanager::getFileKey( $this->view, $this->userId, $filename ); + + $decryptedKeyfile = Encryption\Crypt::keyDecrypt( $encryptedKeyfile, $decryptedPrivateKey ); + + + // Set var for reassembling decrypted content + $decrypt = ''; + + // Manually decrypt chunk + foreach ($e as $e) { + +// echo "\n\$e = $e"; + + $chunkDecrypt = Encryption\Crypt::symmetricDecryptFileContent( $e, $decryptedKeyfile ); + + // Assemble decrypted chunks + $decrypt .= $chunkDecrypt; + +// echo "\n\$chunkDecrypt = $chunkDecrypt"; + + } + +// echo "\n\$decrypt = $decrypt"; + + $this->assertEquals( $this->dataLong.$this->dataLong, $decrypt ); + + // Teardown + + $this->view->unlink( $filename ); + + Encryption\Keymanager::deleteFileKey( $filename ); + + } + + /** + * @brief Test that data that is read by the crypto stream wrapper + */ + function testSymmetricStreamDecryptShortFileContent() { + + $filename = 'tmp-'.time(); + + // Save long data as encrypted file using stream wrapper + $cryptedFile = file_put_contents( 'crypt://' . $filename, $this->dataShort ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + + // Get file contents without using any wrapper to get it's actual contents on disk + $retreivedCryptedFile = $this->view->file_get_contents( $this->userId . '/files/' . $filename ); + + $decrypt = file_get_contents( 'crypt://' . $filename ); + + $this->assertEquals( $this->dataShort, $decrypt ); + + } + + function testSymmetricStreamDecryptLongFileContent() { + + $filename = 'tmp-'.time(); + + // Save long data as encrypted file using stream wrapper + $cryptedFile = file_put_contents( 'crypt://' . $filename, $this->dataLong ); + + // Test that data was successfully written + $this->assertTrue( is_int( $cryptedFile ) ); + + + // Get file contents without using any wrapper to get it's actual contents on disk + $retreivedCryptedFile = $this->view->file_get_contents( $this->userId . '/files/' . $filename ); + + $decrypt = file_get_contents( 'crypt://' . $filename ); + + $this->assertEquals( $this->dataLong, $decrypt ); + + } + + // Is this test still necessary? +// function testSymmetricBlockStreamDecryptFileContent() { +// +// \OC_User::setUserId( 'admin' ); +// +// // Disable encryption proxy to prevent unwanted en/decryption +// \OC_FileProxy::$enabled = false; +// +// $cryptedFile = file_put_contents( 'crypt://' . '/blockEncrypt', $this->dataUrl ); +// +// // Disable encryption proxy to prevent unwanted en/decryption +// \OC_FileProxy::$enabled = false; +// +// echo "\n\n\$cryptedFile = " . $this->view->file_get_contents( '/blockEncrypt' ); +// +// $retreivedCryptedFile = file_get_contents( 'crypt://' . '/blockEncrypt' ); +// +// $this->assertEquals( $this->dataUrl, $retreivedCryptedFile ); +// +// \OC_FileProxy::$enabled = false; +// +// } + + function testSymmetricEncryptFileContentKeyfile() { + + # TODO: search in keyfile for actual content as IV will ensure this test always passes + + $crypted = Encryption\Crypt::symmetricEncryptFileContentKeyfile( $this->dataUrl ); + + $this->assertNotEquals( $this->dataUrl, $crypted['encrypted'] ); + + + $decrypt = Encryption\Crypt::symmetricDecryptFileContent( $crypted['encrypted'], $crypted['key'] ); + + $this->assertEquals( $this->dataUrl, $decrypt ); + + } + + function testIsEncryptedContent() { + + $this->assertFalse( Encryption\Crypt::isEncryptedContent( $this->dataUrl ) ); + + $this->assertFalse( Encryption\Crypt::isEncryptedContent( $this->legacyEncryptedData ) ); + + $keyfileContent = Encryption\Crypt::symmetricEncryptFileContent( $this->dataUrl, 'hat' ); + + $this->assertTrue( Encryption\Crypt::isEncryptedContent( $keyfileContent ) ); + + } + + function testMultiKeyEncrypt() { + + # TODO: search in keyfile for actual content as IV will ensure this test always passes + + $pair1 = Encryption\Crypt::createKeypair(); + + $this->assertEquals( 2, count( $pair1 ) ); + + $this->assertTrue( strlen( $pair1['publicKey'] ) > 1 ); + + $this->assertTrue( strlen( $pair1['privateKey'] ) > 1 ); + + + $crypted = Encryption\Crypt::multiKeyEncrypt( $this->dataUrl, array( $pair1['publicKey'] ) ); + + $this->assertNotEquals( $this->dataUrl, $crypted['encrypted'] ); + + + $decrypt = Encryption\Crypt::multiKeyDecrypt( $crypted['encrypted'], $crypted['keys'][0], $pair1['privateKey'] ); + + $this->assertEquals( $this->dataUrl, $decrypt ); + + } + + function testKeyEncrypt() { + + // Generate keypair + $pair1 = Encryption\Crypt::createKeypair(); + + // Encrypt data + $crypted = Encryption\Crypt::keyEncrypt( $this->dataUrl, $pair1['publicKey'] ); + + $this->assertNotEquals( $this->dataUrl, $crypted ); + + // Decrypt data + $decrypt = Encryption\Crypt::keyDecrypt( $crypted, $pair1['privateKey'] ); + + $this->assertEquals( $this->dataUrl, $decrypt ); + + } + + // What is the point of this test? It doesn't use keyEncryptKeyfile() + function testKeyEncryptKeyfile() { + + # TODO: Don't repeat encryption from previous tests, use PHPUnit test interdependency instead + + // Generate keypair + $pair1 = Encryption\Crypt::createKeypair(); + + // Encrypt plain data, generate keyfile & encrypted file + $cryptedData = Encryption\Crypt::symmetricEncryptFileContentKeyfile( $this->dataUrl ); + + // Encrypt keyfile + $cryptedKey = Encryption\Crypt::keyEncrypt( $cryptedData['key'], $pair1['publicKey'] ); + + // Decrypt keyfile + $decryptKey = Encryption\Crypt::keyDecrypt( $cryptedKey, $pair1['privateKey'] ); + + // Decrypt encrypted file + $decryptData = Encryption\Crypt::symmetricDecryptFileContent( $cryptedData['encrypted'], $decryptKey ); + + $this->assertEquals( $this->dataUrl, $decryptData ); + + } + + /** + * @brief test functionality of keyEncryptKeyfile() and + * keyDecryptKeyfile() + */ + function testKeyDecryptKeyfile() { + + $encrypted = Encryption\Crypt::keyEncryptKeyfile( $this->dataShort, $this->genPublicKey ); + + $this->assertNotEquals( $encrypted['data'], $this->dataShort ); + + $decrypted = Encryption\Crypt::keyDecryptKeyfile( $encrypted['data'], $encrypted['key'], $this->genPrivateKey ); + + $this->assertEquals( $decrypted, $this->dataShort ); + + } + + + /** + * @brief test encryption using legacy blowfish method + */ + function testLegacyEncryptShort() { + + $crypted = Encryption\Crypt::legacyEncrypt( $this->dataShort, $this->pass ); + + $this->assertNotEquals( $this->dataShort, $crypted ); + + # TODO: search inencrypted text for actual content to ensure it + # genuine transformation + + return $crypted; + + } + + /** + * @brief test decryption using legacy blowfish method + * @depends testLegacyEncryptShort + */ + function testLegacyDecryptShort( $crypted ) { + + $decrypted = Encryption\Crypt::legacyDecrypt( $crypted, $this->pass ); + + $this->assertEquals( $this->dataShort, $decrypted ); + + } + + /** + * @brief test encryption using legacy blowfish method + */ + function testLegacyEncryptLong() { + + $crypted = Encryption\Crypt::legacyEncrypt( $this->dataLong, $this->pass ); + + $this->assertNotEquals( $this->dataLong, $crypted ); + + # TODO: search inencrypted text for actual content to ensure it + # genuine transformation + + return $crypted; + + } + + /** + * @brief test decryption using legacy blowfish method + * @depends testLegacyEncryptLong + */ + function testLegacyDecryptLong( $crypted ) { + + $decrypted = Encryption\Crypt::legacyDecrypt( $crypted, $this->pass ); + + $this->assertEquals( $this->dataLong, $decrypted ); + + } + + /** + * @brief test generation of legacy encryption key + * @depends testLegacyDecryptShort + */ + function testLegacyCreateKey() { + + // Create encrypted key + $encKey = Encryption\Crypt::legacyCreateKey( $this->pass ); + + // Decrypt key + $key = Encryption\Crypt::legacyDecrypt( $encKey, $this->pass ); + + $this->assertTrue( is_numeric( $key ) ); + + // Check that key is correct length + $this->assertEquals( 20, strlen( $key ) ); + + } + + /** + * @brief test decryption using legacy blowfish method + * @depends testLegacyEncryptLong + */ + function testLegacyKeyRecryptKeyfileEncrypt( $crypted ) { + + $recrypted = Encryption\Crypt::LegacyKeyRecryptKeyfile( $crypted, $this->pass, $this->genPublicKey, $this->pass ); + + $this->assertNotEquals( $this->dataLong, $recrypted['data'] ); + + return $recrypted; + + # TODO: search inencrypted text for actual content to ensure it + # genuine transformation + + } + +// function testEncryption(){ +// +// $key=uniqid(); +// $file=OC::$SERVERROOT.'/3rdparty/MDB2.php'; +// $source=file_get_contents($file); //nice large text file +// $encrypted=OC_Encryption\Crypt::encrypt($source,$key); +// $decrypted=OC_Encryption\Crypt::decrypt($encrypted,$key); +// $decrypted=rtrim($decrypted, "\0"); +// $this->assertNotEquals($encrypted,$source); +// $this->assertEqual($decrypted,$source); +// +// $chunk=substr($source,0,8192); +// $encrypted=OC_Encryption\Crypt::encrypt($chunk,$key); +// $this->assertEqual(strlen($chunk),strlen($encrypted)); +// $decrypted=OC_Encryption\Crypt::decrypt($encrypted,$key); +// $decrypted=rtrim($decrypted, "\0"); +// $this->assertEqual($decrypted,$chunk); +// +// $encrypted=OC_Encryption\Crypt::blockEncrypt($source,$key); +// $decrypted=OC_Encryption\Crypt::blockDecrypt($encrypted,$key); +// $this->assertNotEquals($encrypted,$source); +// $this->assertEqual($decrypted,$source); +// +// $tmpFileEncrypted=OCP\Files::tmpFile(); +// OC_Encryption\Crypt::encryptfile($file,$tmpFileEncrypted,$key); +// $encrypted=file_get_contents($tmpFileEncrypted); +// $decrypted=OC_Encryption\Crypt::blockDecrypt($encrypted,$key); +// $this->assertNotEquals($encrypted,$source); +// $this->assertEqual($decrypted,$source); +// +// $tmpFileDecrypted=OCP\Files::tmpFile(); +// OC_Encryption\Crypt::decryptfile($tmpFileEncrypted,$tmpFileDecrypted,$key); +// $decrypted=file_get_contents($tmpFileDecrypted); +// $this->assertEqual($decrypted,$source); +// +// $file=OC::$SERVERROOT.'/core/img/weather-clear.png'; +// $source=file_get_contents($file); //binary file +// $encrypted=OC_Encryption\Crypt::encrypt($source,$key); +// $decrypted=OC_Encryption\Crypt::decrypt($encrypted,$key); +// $decrypted=rtrim($decrypted, "\0"); +// $this->assertEqual($decrypted,$source); +// +// $encrypted=OC_Encryption\Crypt::blockEncrypt($source,$key); +// $decrypted=OC_Encryption\Crypt::blockDecrypt($encrypted,$key); +// $this->assertEqual($decrypted,$source); +// +// } +// +// function testBinary(){ +// $key=uniqid(); +// +// $file=__DIR__.'/binary'; +// $source=file_get_contents($file); //binary file +// $encrypted=OC_Encryption\Crypt::encrypt($source,$key); +// $decrypted=OC_Encryption\Crypt::decrypt($encrypted,$key); +// +// $decrypted=rtrim($decrypted, "\0"); +// $this->assertEqual($decrypted,$source); +// +// $encrypted=OC_Encryption\Crypt::blockEncrypt($source,$key); +// $decrypted=OC_Encryption\Crypt::blockDecrypt($encrypted,$key,strlen($source)); +// $this->assertEqual($decrypted,$source); +// } + +} diff --git a/apps/files_encryption/test/keymanager.php b/apps/files_encryption/test/keymanager.php new file mode 100644 index 00000000000..f02d6eb5f7a --- /dev/null +++ b/apps/files_encryption/test/keymanager.php @@ -0,0 +1,132 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +//require_once "PHPUnit/Framework/TestCase.php"; +require_once realpath( dirname(__FILE__).'/../../../lib/base.php' ); +require_once realpath( dirname(__FILE__).'/../lib/crypt.php' ); +require_once realpath( dirname(__FILE__).'/../lib/keymanager.php' ); +require_once realpath( dirname(__FILE__).'/../lib/proxy.php' ); +require_once realpath( dirname(__FILE__).'/../lib/stream.php' ); +require_once realpath( dirname(__FILE__).'/../lib/util.php' ); +require_once realpath( dirname(__FILE__).'/../appinfo/app.php' ); + +use OCA\Encryption; + +// This has to go here because otherwise session errors arise, and the private +// encryption key needs to be saved in the session +\OC_User::login( 'admin', 'admin' ); + +class Test_Keymanager extends \PHPUnit_Framework_TestCase { + + function setUp() { + + \OC_FileProxy::$enabled = false; + + // set content for encrypting / decrypting in tests + $this->dataLong = file_get_contents( realpath( dirname(__FILE__).'/../lib/crypt.php' ) ); + $this->dataShort = 'hats'; + $this->dataUrl = realpath( dirname(__FILE__).'/../lib/crypt.php' ); + $this->legacyData = realpath( dirname(__FILE__).'/legacy-text.txt' ); + $this->legacyEncryptedData = realpath( dirname(__FILE__).'/legacy-encrypted-text.txt' ); + $this->randomKey = Encryption\Crypt::generateKey(); + + $keypair = Encryption\Crypt::createKeypair(); + $this->genPublicKey = $keypair['publicKey']; + $this->genPrivateKey = $keypair['privateKey']; + + $this->view = new \OC_FilesystemView( '/' ); + + \OC_User::setUserId( 'admin' ); + $this->userId = 'admin'; + $this->pass = 'admin'; + + \OC_Filesystem::init( '/' ); + \OC_Filesystem::mount( 'OC_Filestorage_Local', array('datadir' => \OC_User::getHome($this->userId)), '/' ); + + } + + function tearDown(){ + + \OC_FileProxy::$enabled = true; + + } + + function testGetPrivateKey() { + + $key = Encryption\Keymanager::getPrivateKey( $this->view, $this->userId ); + + // Will this length vary? Perhaps we should use a range instead + $this->assertEquals( 2296, strlen( $key ) ); + + } + + function testGetPublicKey() { + + $key = Encryption\Keymanager::getPublicKey( $this->view, $this->userId ); + + $this->assertEquals( 451, strlen( $key ) ); + + $this->assertEquals( '-----BEGIN PUBLIC KEY-----', substr( $key, 0, 26 ) ); + } + + function testSetFileKey() { + + # NOTE: This cannot be tested until we are able to break out + # of the FileSystemView data directory root + +// $key = Crypt::symmetricEncryptFileContentKeyfile( $this->data, 'hat' ); +// +// $tmpPath = sys_get_temp_dir(). '/' . 'testSetFileKey'; +// +// $view = new \OC_FilesystemView( '/tmp/' ); +// +// //$view = new \OC_FilesystemView( '/' . $this->userId . '/files_encryption/keyfiles' ); +// +// Encryption\Keymanager::setFileKey( $tmpPath, $key['key'], $view ); + + } + +// /** +// * @depends testGetPrivateKey +// */ +// function testGetPrivateKey_decrypt() { +// +// $key = Encryption\Keymanager::getPrivateKey( $this->view, $this->userId ); +// +// # TODO: replace call to Crypt with a mock object? +// $decrypted = Encryption\Crypt::symmetricDecryptFileContent( $key, $this->passphrase ); +// +// $this->assertEquals( 1704, strlen( $decrypted ) ); +// +// $this->assertEquals( '-----BEGIN PRIVATE KEY-----', substr( $decrypted, 0, 27 ) ); +// +// } + + function testGetUserKeys() { + + $keys = Encryption\Keymanager::getUserKeys( $this->view, $this->userId ); + + $this->assertEquals( 451, strlen( $keys['publicKey'] ) ); + $this->assertEquals( '-----BEGIN PUBLIC KEY-----', substr( $keys['publicKey'], 0, 26 ) ); + $this->assertEquals( 2296, strlen( $keys['privateKey'] ) ); + + } + + function testGetPublicKeys() { + + # TODO: write me + + } + + function testGetFileKey() { + +// Encryption\Keymanager::getFileKey( $this->view, $this->userId, $this->filePath ); + + } + +} diff --git a/apps/files_encryption/test/legacy-encrypted-text.txt b/apps/files_encryption/test/legacy-encrypted-text.txt new file mode 100644 index 00000000000..cb5bf50550d Binary files /dev/null and b/apps/files_encryption/test/legacy-encrypted-text.txt differ diff --git a/apps/files_encryption/test/proxy.php b/apps/files_encryption/test/proxy.php new file mode 100644 index 00000000000..51e77100baa --- /dev/null +++ b/apps/files_encryption/test/proxy.php @@ -0,0 +1,220 @@ +, + * and Robin Appelman + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +// require_once "PHPUnit/Framework/TestCase.php"; +// require_once realpath( dirname(__FILE__).'/../../../lib/base.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/Generator.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/MockInterface.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/Mock.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/Container.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/Configuration.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/CompositeExpectation.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/ExpectationDirector.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/Expectation.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/Exception.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/CountValidator/CountValidatorAbstract.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/CountValidator/Exception.php' ); +// require_once realpath( dirname(__FILE__).'/../../../3rdparty/mockery/Mockery/CountValidator/Exact.php' ); +// +// use \Mockery as m; +// use OCA\Encryption; + +// class Test_Util extends \PHPUnit_Framework_TestCase { +// +// public function setUp() { +// +// $this->proxy = new Encryption\Proxy(); +// +// $this->tmpFileName = "tmpFile-".time(); +// +// $this->privateKey = file_get_contents( realpath( dirname(__FILE__).'/data/admin.public.key' ) ); +// $this->publicKey = file_get_contents( realpath( dirname(__FILE__).'/data/admin.private.key' ) ); +// $this->encDataShort = file_get_contents( realpath( dirname(__FILE__).'/data/yoga-manchester-enc' ) ); +// $this->encDataShortKey = file_get_contents( realpath( dirname(__FILE__).'/data/yoga-manchester.key' ) ); +// +// $this->dataShort = file_get_contents( realpath( dirname(__FILE__).'/data/yoga-manchester' ) ); +// $this->dataLong = file_get_contents( realpath( dirname(__FILE__).'/../lib/crypt.php' ) ); +// $this->longDataPath = realpath( dirname(__FILE__).'/../lib/crypt.php' ); +// +// $this->data1 = file_get_contents( realpath( dirname(__FILE__).'/../../../data/admin/files/enc-test.txt' ) ); +// +// \OC_FileProxy::$enabled = false; +// $this->Encdata1 = file_get_contents( realpath( dirname(__FILE__).'/../../../data/admin/files/enc-test.txt' ) ); +// \OC_FileProxy::$enabled = true; +// +// $this->userId = 'admin'; +// $this->pass = 'admin'; +// +// $this->session = new Encryption\Session(); +// +// $this->session->setPrivateKey( +// '-----BEGIN PRIVATE KEY----- +// MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDiH3EA4EpFA7Fx +// s2dyyfL5jwXeYXrTqQJ6DqKgGn8VsbT3eu8R9KzM2XitVwZe8c8L52DvJ06o5vg0 +// GqPYxilFdOFJe/ggac5Tq8UmJiZS4EqYEMwxBIfIyWTxeGV06/0HOwnVAkqHMcBz +// 64qldtgi5O8kZMEM2/gKBgU0kMLJzM+8oEWhL1+gsUWQhxd8cKLXypS6iWgqFJrz +// f/X0hJsJR+gyYxNpahtnjzd/LxLAETrOMsl2tue+BAxmjbAM0aG0NEM0div+b59s +// 2uz/iWbxImp5pOdYVKcVW89D4XBMyGegR40trV2VwiuX1blKCfdjMsJhiaL9pymp +// ug1wzyQFAgMBAAECggEAK6c+PZkPPXuVCgpEcliiW6NM0r2m5K3AGKgypQ34csu3 +// z/8foCvIIFPrhCtEw5eTDQ1CHWlNOjY8vHJYJ0U6Onpx86nHIRrMBkMm8FJ1G5LJ +// U8oKYXwqaozWu/cuPwA//OFc6I5krOzh5n8WaRMkbrgbor8AtebRX74By0AXGrXe +// cswJI7zR96oFn4Dm7Pgvpg5Zhk1vFJ+w6QtH+4DDJ6PBvlZsRkGxYBLGVd/3qhAI +// sBAyjFlSzuP4eCRhHOhHC/e4gmAH9evFVXB88jFyRZm3K+jQ5W5CwrVRBCV2lph6 +// 2B6P7CBJN+IjGKMhy+75y13UvvKPv9IwH8Fzl2x1gQKBgQD8qQOr7a6KhSj16wQE +// jim2xqt9gQ2jH5No405NrKs/PFQQZnzD4YseQsiK//NUjOJiUhaT+L5jhIpzINHt +// RJpt3bGkEZmLyjdjgTpB3GwZdXa28DNK9VdXZ19qIl/ZH0qAjKmJCRahUDASMnVi +// M4Pkk9yx9ZIKkri4TcuMWqc0DQKBgQDlHKBTITZq/arYPD6Nl3NsoOdqVRqJrGay +// 0TjXAVbBXe46+z5lnMsqwXb79nx14hdmSEsZULrw/3f+MnQbdjMTYLFP24visZg9 +// MN8vAiALiiiR1a+Crz+DTA1Q8sGOMVCMqMDmD7QBys3ZuWxuapm0txAiIYUtsjJZ +// XN76T4nZ2QKBgQCHaT3igzwsWTmesxowJtEMeGWomeXpKx8h89EfqA8PkRGsyIDN +// qq+YxEoe1RZgljEuaLhZDdNcGsjo8woPk9kAUPTH7fbRCMuutK+4ZJ469s1tNkcH +// QX5SBcEJbOrZvv967ehe3VQXmJZq6kgnHVzuwKBjcC2ZJRGDFY6l5l/+cQKBgCqh +// +Adf/8NK7paMJ0urqfPFwSodKfICXZ3apswDWMRkmSbqh4La+Uc8dsqN5Dz/VEFZ +// JHhSeGbN8uMfOlG93eU2MehdPxtw1pZUWMNjjtj23XO9ooob2CKzbSrp8TBnZsi1 +// widNNr66oTFpeo7VUUK6acsgF6sYJJxSVr+XO1yJAoGAEhvitq8shNKcEY0xCipS +// k1kbgyS7KKB7opVxI5+ChEqyUDijS3Y9FZixrRIWE6i2uGu86UG+v2lbKvSbM4Qm +// xvbOcX9OVMnlRb7n8woOP10UMY+ZE2x+YEUXQTLtPYq7F66e1OfxltstMxLQA+3d +// Y1d5piFV8PXK3Fg2F+Cj5qg= +// -----END PRIVATE KEY----- +// ' +// , $this->userId +// ); +// +// \OC_User::setUserId( $this->userId ); +// +// } +// +// public function testpreFile_get_contents() { +// +// // This won't work for now because mocking of the static keymanager class isn't working :( +// +// // $mock = m::mock( 'alias:OCA\Encryption\Keymanager' ); +// // +// // $mock->shouldReceive( 'getFileKey' )->times(2)->andReturn( $this->encDataShort ); +// // +// // $encrypted = $this->proxy->postFile_get_contents( 'data/'.$this->tmpFileName, $this->encDataShortKey ); +// // +// // $this->assertNotEquals( $this->dataShort, $encrypted ); +// +// $decrypted = $this->proxy->postFile_get_contents( 'data/admin/files/enc-test.txt', $this->data1 ); +// +// } +// +// } + +// class Test_CryptProxy extends UnitTestCase { +// private $oldConfig; +// private $oldKey; +// +// public function setUp(){ +// $user=OC_User::getUser(); +// +// $this->oldConfig=OCP\Config::getAppValue('files_encryption','enable_encryption','true'); +// OCP\Config::setAppValue('files_encryption','enable_encryption','true'); +// $this->oldKey=isset($_SESSION['privateKey'])?$_SESSION['privateKey']:null; +// +// +// //set testing key +// $_SESSION['privateKey']=md5(time()); +// +// //clear all proxies and hooks so we can do clean testing +// OC_FileProxy::clearProxies(); +// OC_Hook::clear('OC_Filesystem'); +// +// //enable only the encryption hook +// OC_FileProxy::register(new OC_FileProxy_Encryption()); +// +// //set up temporary storage +// OC_Filesystem::clearMounts(); +// OC_Filesystem::mount('OC_Filestorage_Temporary',array(),'/'); +// +// OC_Filesystem::init('/'.$user.'/files'); +// +// //set up the users home folder in the temp storage +// $rootView=new OC_FilesystemView(''); +// $rootView->mkdir('/'.$user); +// $rootView->mkdir('/'.$user.'/files'); +// } +// +// public function tearDown(){ +// OCP\Config::setAppValue('files_encryption','enable_encryption',$this->oldConfig); +// if(!is_null($this->oldKey)){ +// $_SESSION['privateKey']=$this->oldKey; +// } +// } +// +// public function testSimple(){ +// $file=OC::$SERVERROOT.'/3rdparty/MDB2.php'; +// $original=file_get_contents($file); +// +// OC_Filesystem::file_put_contents('/file',$original); +// +// OC_FileProxy::$enabled=false; +// $stored=OC_Filesystem::file_get_contents('/file'); +// OC_FileProxy::$enabled=true; +// +// $fromFile=OC_Filesystem::file_get_contents('/file'); +// $this->assertNotEqual($original,$stored); +// $this->assertEqual(strlen($original),strlen($fromFile)); +// $this->assertEqual($original,$fromFile); +// +// } +// +// public function testView(){ +// $file=OC::$SERVERROOT.'/3rdparty/MDB2.php'; +// $original=file_get_contents($file); +// +// $rootView=new OC_FilesystemView(''); +// $view=new OC_FilesystemView('/'.OC_User::getUser()); +// $userDir='/'.OC_User::getUser().'/files'; +// +// $rootView->file_put_contents($userDir.'/file',$original); +// +// OC_FileProxy::$enabled=false; +// $stored=$rootView->file_get_contents($userDir.'/file'); +// OC_FileProxy::$enabled=true; +// +// $this->assertNotEqual($original,$stored); +// $fromFile=$rootView->file_get_contents($userDir.'/file'); +// $this->assertEqual($original,$fromFile); +// +// $fromFile=$view->file_get_contents('files/file'); +// $this->assertEqual($original,$fromFile); +// } +// +// public function testBinary(){ +// $file=__DIR__.'/binary'; +// $original=file_get_contents($file); +// +// OC_Filesystem::file_put_contents('/file',$original); +// +// OC_FileProxy::$enabled=false; +// $stored=OC_Filesystem::file_get_contents('/file'); +// OC_FileProxy::$enabled=true; +// +// $fromFile=OC_Filesystem::file_get_contents('/file'); +// $this->assertNotEqual($original,$stored); +// $this->assertEqual(strlen($original),strlen($fromFile)); +// $this->assertEqual($original,$fromFile); +// +// $file=__DIR__.'/zeros'; +// $original=file_get_contents($file); +// +// OC_Filesystem::file_put_contents('/file',$original); +// +// OC_FileProxy::$enabled=false; +// $stored=OC_Filesystem::file_get_contents('/file'); +// OC_FileProxy::$enabled=true; +// +// $fromFile=OC_Filesystem::file_get_contents('/file'); +// $this->assertNotEqual($original,$stored); +// $this->assertEqual(strlen($original),strlen($fromFile)); +// } +// } diff --git a/apps/files_encryption/test/stream.php b/apps/files_encryption/test/stream.php new file mode 100644 index 00000000000..4211cab3104 --- /dev/null +++ b/apps/files_encryption/test/stream.php @@ -0,0 +1,226 @@ +// +// * This file is licensed under the Affero General Public License version 3 or +// * later. +// * See the COPYING-README file. +// */ +// +// namespace OCA\Encryption; +// +// class Test_Stream extends \PHPUnit_Framework_TestCase { +// +// function setUp() { +// +// \OC_Filesystem::mount( 'OC_Filestorage_Local', array(), '/' ); +// +// $this->empty = ''; +// +// $this->stream = new Stream(); +// +// $this->dataLong = file_get_contents( realpath( dirname(__FILE__).'/../lib/crypt.php' ) ); +// $this->dataShort = 'hats'; +// +// $this->emptyTmpFilePath = \OCP\Files::tmpFile(); +// +// $this->dataTmpFilePath = \OCP\Files::tmpFile(); +// +// file_put_contents( $this->dataTmpFilePath, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec a diam lectus. Sed sit amet ipsum mauris. Maecenas congue ligula ac quam viverra nec consectetur ante hendrerit. Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean ut gravida lorem. Ut turpis felis, pulvinar a semper sed, adipiscing id dolor. Pellentesque auctor nisi id magna consequat sagittis. Curabitur dapibus enim sit amet elit pharetra tincidunt feugiat nisl imperdiet. Ut convallis libero in urna ultrices accumsan. Donec sed odio eros. Donec viverra mi quis quam pulvinar at malesuada arcu rhoncus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. In rutrum accumsan ultricies. Mauris vitae nisi at sem facilisis semper ac in est." ); +// +// } +// +// function testStreamOpen() { +// +// $stream1 = new Stream(); +// +// $handle1 = $stream1->stream_open( $this->emptyTmpFilePath, 'wb', array(), $this->empty ); +// +// // Test that resource was returned successfully +// $this->assertTrue( $handle1 ); +// +// // Test that file has correct size +// $this->assertEquals( 0, $stream1->size ); +// +// // Test that path is correct +// $this->assertEquals( $this->emptyTmpFilePath, $stream1->rawPath ); +// +// $stream2 = new Stream(); +// +// $handle2 = $stream2->stream_open( 'crypt://' . $this->emptyTmpFilePath, 'wb', array(), $this->empty ); +// +// // Test that protocol identifier is removed from path +// $this->assertEquals( $this->emptyTmpFilePath, $stream2->rawPath ); +// +// // "Stat failed error" prevents this test from executing +// // $stream3 = new Stream(); +// // +// // $handle3 = $stream3->stream_open( $this->dataTmpFilePath, 'r', array(), $this->empty ); +// // +// // $this->assertEquals( 0, $stream3->size ); +// +// } +// +// function testStreamWrite() { +// +// $stream1 = new Stream(); +// +// $handle1 = $stream1->stream_open( $this->emptyTmpFilePath, 'r+b', array(), $this->empty ); +// +// # what about the keymanager? there is no key for the newly created temporary file! +// +// $stream1->stream_write( $this->dataShort ); +// +// } +// +// // function getStream( $id, $mode, $size ) { +// // +// // if ( $id === '' ) { +// // +// // $id = uniqid(); +// // } +// // +// // +// // if ( !isset( $this->tmpFiles[$id] ) ) { +// // +// // // If tempfile with given name does not already exist, create it +// // +// // $file = OCP\Files::tmpFile(); +// // +// // $this->tmpFiles[$id] = $file; +// // +// // } else { +// // +// // $file = $this->tmpFiles[$id]; +// // +// // } +// // +// // $stream = fopen( $file, $mode ); +// // +// // Stream::$sourceStreams[$id] = array( 'path' => 'dummy' . $id, 'stream' => $stream, 'size' => $size ); +// // +// // return fopen( 'crypt://streams/'.$id, $mode ); +// // +// // } +// // +// // function testStream( ){ +// // +// // $stream = $this->getStream( 'test1', 'w', strlen( 'foobar' ) ); +// // +// // fwrite( $stream, 'foobar' ); +// // +// // fclose( $stream ); +// // +// // +// // $stream = $this->getStream( 'test1', 'r', strlen( 'foobar' ) ); +// // +// // $data = fread( $stream, 6 ); +// // +// // fclose( $stream ); +// // +// // $this->assertEqual( 'foobar', $data ); +// // +// // +// // $file = OC::$SERVERROOT.'/3rdparty/MDB2.php'; +// // +// // $source = fopen( $file, 'r' ); +// // +// // $target = $this->getStream( 'test2', 'w', 0 ); +// // +// // OCP\Files::streamCopy( $source, $target ); +// // +// // fclose( $target ); +// // +// // fclose( $source ); +// // +// // +// // $stream = $this->getStream( 'test2', 'r', filesize( $file ) ); +// // +// // $data = stream_get_contents( $stream ); +// // +// // $original = file_get_contents( $file ); +// // +// // $this->assertEqual( strlen( $original ), strlen( $data ) ); +// // +// // $this->assertEqual( $original, $data ); +// // +// // } +// +// } +// +// // class Test_CryptStream extends UnitTestCase { +// // private $tmpFiles=array(); +// // +// // function testStream(){ +// // $stream=$this->getStream('test1','w',strlen('foobar')); +// // fwrite($stream,'foobar'); +// // fclose($stream); +// // +// // $stream=$this->getStream('test1','r',strlen('foobar')); +// // $data=fread($stream,6); +// // fclose($stream); +// // $this->assertEqual('foobar',$data); +// // +// // $file=OC::$SERVERROOT.'/3rdparty/MDB2.php'; +// // $source=fopen($file,'r'); +// // $target=$this->getStream('test2','w',0); +// // OCP\Files::streamCopy($source,$target); +// // fclose($target); +// // fclose($source); +// // +// // $stream=$this->getStream('test2','r',filesize($file)); +// // $data=stream_get_contents($stream); +// // $original=file_get_contents($file); +// // $this->assertEqual(strlen($original),strlen($data)); +// // $this->assertEqual($original,$data); +// // } +// // +// // /** +// // * get a cryptstream to a temporary file +// // * @param string $id +// // * @param string $mode +// // * @param int size +// // * @return resource +// // */ +// // function getStream($id,$mode,$size){ +// // if($id===''){ +// // $id=uniqid(); +// // } +// // if(!isset($this->tmpFiles[$id])){ +// // $file=OCP\Files::tmpFile(); +// // $this->tmpFiles[$id]=$file; +// // }else{ +// // $file=$this->tmpFiles[$id]; +// // } +// // $stream=fopen($file,$mode); +// // OC_CryptStream::$sourceStreams[$id]=array('path'=>'dummy'.$id,'stream'=>$stream,'size'=>$size); +// // return fopen('crypt://streams/'.$id,$mode); +// // } +// // +// // function testBinary(){ +// // $file=__DIR__.'/binary'; +// // $source=file_get_contents($file); +// // +// // $stream=$this->getStream('test','w',strlen($source)); +// // fwrite($stream,$source); +// // fclose($stream); +// // +// // $stream=$this->getStream('test','r',strlen($source)); +// // $data=stream_get_contents($stream); +// // fclose($stream); +// // $this->assertEqual(strlen($data),strlen($source)); +// // $this->assertEqual($source,$data); +// // +// // $file=__DIR__.'/zeros'; +// // $source=file_get_contents($file); +// // +// // $stream=$this->getStream('test2','w',strlen($source)); +// // fwrite($stream,$source); +// // fclose($stream); +// // +// // $stream=$this->getStream('test2','r',strlen($source)); +// // $data=stream_get_contents($stream); +// // fclose($stream); +// // $this->assertEqual(strlen($data),strlen($source)); +// // $this->assertEqual($source,$data); +// // } +// // } diff --git a/apps/files_encryption/test/util.php b/apps/files_encryption/test/util.php new file mode 100755 index 00000000000..016787fbfba --- /dev/null +++ b/apps/files_encryption/test/util.php @@ -0,0 +1,210 @@ + + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +//require_once "PHPUnit/Framework/TestCase.php"; +require_once realpath( dirname(__FILE__).'/../../../lib/base.php' ); +require_once realpath( dirname(__FILE__).'/../lib/crypt.php' ); +require_once realpath( dirname(__FILE__).'/../lib/keymanager.php' ); +require_once realpath( dirname(__FILE__).'/../lib/proxy.php' ); +require_once realpath( dirname(__FILE__).'/../lib/stream.php' ); +require_once realpath( dirname(__FILE__).'/../lib/util.php' ); +require_once realpath( dirname(__FILE__).'/../appinfo/app.php' ); + +// Load mockery files +require_once 'Mockery/Loader.php'; +require_once 'Hamcrest/Hamcrest.php'; +$loader = new \Mockery\Loader; +$loader->register(); + +use \Mockery as m; +use OCA\Encryption; + +class Test_Enc_Util extends \PHPUnit_Framework_TestCase { + + function setUp() { + + \OC_Filesystem::mount( 'OC_Filestorage_Local', array(), '/' ); + + // set content for encrypting / decrypting in tests + $this->dataUrl = realpath( dirname(__FILE__).'/../lib/crypt.php' ); + $this->dataShort = 'hats'; + $this->dataLong = file_get_contents( realpath( dirname(__FILE__).'/../lib/crypt.php' ) ); + $this->legacyData = realpath( dirname(__FILE__).'/legacy-text.txt' ); + $this->legacyEncryptedData = realpath( dirname(__FILE__).'/legacy-encrypted-text.txt' ); + + $this->userId = 'admin'; + $this->pass = 'admin'; + + $keypair = Encryption\Crypt::createKeypair(); + + $this->genPublicKey = $keypair['publicKey']; + $this->genPrivateKey = $keypair['privateKey']; + + $this->publicKeyDir = '/' . 'public-keys'; + $this->encryptionDir = '/' . $this->userId . '/' . 'files_encryption'; + $this->keyfilesPath = $this->encryptionDir . '/' . 'keyfiles'; + $this->publicKeyPath = $this->publicKeyDir . '/' . $this->userId . '.public.key'; // e.g. data/public-keys/admin.public.key + $this->privateKeyPath = $this->encryptionDir . '/' . $this->userId . '.private.key'; // e.g. data/admin/admin.private.key + + $this->view = new OC_FilesystemView( '/admin' ); + + $this->mockView = m::mock('OC_FilesystemView'); + $this->util = new Encryption\Util( $this->mockView, $this->userId ); + + } + + function tearDown(){ + + m::close(); + + } + + /** + * @brief test that paths set during User construction are correct + */ + function testKeyPaths() { + + $mockView = m::mock('OC_FilesystemView'); + + $util = new Encryption\Util( $mockView, $this->userId ); + + $this->assertEquals( $this->publicKeyDir, $util->getPath( 'publicKeyDir' ) ); + $this->assertEquals( $this->encryptionDir, $util->getPath( 'encryptionDir' ) ); + $this->assertEquals( $this->keyfilesPath, $util->getPath( 'keyfilesPath' ) ); + $this->assertEquals( $this->publicKeyPath, $util->getPath( 'publicKeyPath' ) ); + $this->assertEquals( $this->privateKeyPath, $util->getPath( 'privateKeyPath' ) ); + + } + + /** + * @brief test setup of encryption directories when they don't yet exist + */ + function testSetupServerSideNotSetup() { + + $mockView = m::mock('OC_FilesystemView'); + + $mockView->shouldReceive( 'file_exists' )->times(4)->andReturn( false ); + $mockView->shouldReceive( 'mkdir' )->times(3)->andReturn( true ); + $mockView->shouldReceive( 'file_put_contents' )->withAnyArgs(); + + $util = new Encryption\Util( $mockView, $this->userId ); + + $this->assertEquals( true, $util->setupServerSide( $this->pass ) ); + + } + + /** + * @brief test setup of encryption directories when they already exist + */ + function testSetupServerSideIsSetup() { + + $mockView = m::mock('OC_FilesystemView'); + + $mockView->shouldReceive( 'file_exists' )->times(5)->andReturn( true ); + $mockView->shouldReceive( 'file_put_contents' )->withAnyArgs(); + + $util = new Encryption\Util( $mockView, $this->userId ); + + $this->assertEquals( true, $util->setupServerSide( $this->pass ) ); + + } + + /** + * @brief test checking whether account is ready for encryption, when it isn't ready + */ + function testReadyNotReady() { + + $mockView = m::mock('OC_FilesystemView'); + + $mockView->shouldReceive( 'file_exists' )->times(1)->andReturn( false ); + + $util = new Encryption\Util( $mockView, $this->userId ); + + $this->assertEquals( false, $util->ready() ); + + # TODO: Add more tests here to check that if any of the dirs are + # then false will be returned. Use strict ordering? + + } + + /** + * @brief test checking whether account is ready for encryption, when it is ready + */ + function testReadyIsReady() { + + $mockView = m::mock('OC_FilesystemView'); + + $mockView->shouldReceive( 'file_exists' )->times(3)->andReturn( true ); + + $util = new Encryption\Util( $mockView, $this->userId ); + + $this->assertEquals( true, $util->ready() ); + + # TODO: Add more tests here to check that if any of the dirs are + # then false will be returned. Use strict ordering? + + } + +// /** +// * @brief test decryption using legacy blowfish method +// * @depends testLegacyEncryptLong +// */ +// function testLegacyKeyRecryptKeyfileDecrypt( $recrypted ) { +// +// $decrypted = Encryption\Crypt::keyDecryptKeyfile( $recrypted['data'], $recrypted['key'], $this->genPrivateKey ); +// +// $this->assertEquals( $this->dataLong, $decrypted ); +// +// } + +// // Cannot use this test for now due to hidden dependencies in OC_FileCache +// function testIsLegacyEncryptedContent() { +// +// $keyfileContent = OCA\Encryption\Crypt::symmetricEncryptFileContent( $this->legacyEncryptedData, 'hat' ); +// +// $this->assertFalse( OCA\Encryption\Crypt::isLegacyEncryptedContent( $keyfileContent, '/files/admin/test.txt' ) ); +// +// OC_FileCache::put( '/admin/files/legacy-encrypted-test.txt', $this->legacyEncryptedData ); +// +// $this->assertTrue( OCA\Encryption\Crypt::isLegacyEncryptedContent( $this->legacyEncryptedData, '/files/admin/test.txt' ) ); +// +// } + +// // Cannot use this test for now due to need for different root in OC_Filesystem_view class +// function testGetLegacyKey() { +// +// $c = new \OCA\Encryption\Util( $view, false ); +// +// $bool = $c->getLegacyKey( 'admin' ); +// +// $this->assertTrue( $bool ); +// +// $this->assertTrue( $c->legacyKey ); +// +// $this->assertTrue( is_int( $c->legacyKey ) ); +// +// $this->assertTrue( strlen( $c->legacyKey ) == 20 ); +// +// } + +// // Cannot use this test for now due to need for different root in OC_Filesystem_view class +// function testLegacyDecrypt() { +// +// $c = new OCA\Encryption\Util( $this->view, false ); +// +// $bool = $c->getLegacyKey( 'admin' ); +// +// $encrypted = $c->legacyEncrypt( $this->data, $c->legacyKey ); +// +// $decrypted = $c->legacyDecrypt( $encrypted, $c->legacyKey ); +// +// $this->assertEqual( $decrypted, $this->data ); +// +// } + +} \ No newline at end of file diff --git a/apps/files_encryption/test/zeros b/apps/files_encryption/test/zeros new file mode 100644 index 00000000000..ff982acf423 Binary files /dev/null and b/apps/files_encryption/test/zeros differ -- cgit v1.2.3 From ef88ceba8c1108aad6a4f437206f205c60fda870 Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Thu, 24 Jan 2013 16:47:17 +0100 Subject: drop SimpleTest compatibility --- apps/files_encryption/test/crypt.php | 20 ++++++------- apps/files_encryption/test/proxy.php | 24 +++++++-------- apps/files_encryption/test/stream.php | 22 +++++++------- apps/files_encryption/test/util.php | 2 +- apps/files_external/tests/ftp.php | 8 ++--- apps/user_ldap/tests/group_ldap.php | 2 +- tests/bootstrap.php | 19 ------------ tests/lib/archive.php | 36 +++++++++++----------- tests/lib/cache.php | 10 +++---- tests/lib/db.php | 40 ++++++++++++------------- tests/lib/dbschema.php | 2 +- tests/lib/filestorage.php | 50 +++++++++++++++---------------- tests/lib/filesystem.php | 42 +++++++++++++------------- tests/lib/geo.php | 2 +- tests/lib/group.php | 56 +++++++++++++++++------------------ tests/lib/group/backend.php | 20 ++++++------- tests/lib/helper.php | 2 +- tests/lib/share/share.php | 2 +- tests/lib/streamwrappers.php | 10 +++---- tests/lib/template.php | 10 +++---- tests/lib/user/backend.php | 8 ++--- tests/lib/util.php | 2 +- tests/lib/vcategories.php | 22 +++++++------- 23 files changed, 196 insertions(+), 215 deletions(-) (limited to 'apps/files_encryption/test') diff --git a/apps/files_encryption/test/crypt.php b/apps/files_encryption/test/crypt.php index 5a7820dc9da..19c10ab0ab5 100755 --- a/apps/files_encryption/test/crypt.php +++ b/apps/files_encryption/test/crypt.php @@ -609,42 +609,42 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // $decrypted=OC_Encryption\Crypt::decrypt($encrypted,$key); // $decrypted=rtrim($decrypted, "\0"); // $this->assertNotEquals($encrypted,$source); -// $this->assertEqual($decrypted,$source); +// $this->assertEquals($decrypted,$source); // // $chunk=substr($source,0,8192); // $encrypted=OC_Encryption\Crypt::encrypt($chunk,$key); -// $this->assertEqual(strlen($chunk),strlen($encrypted)); +// $this->assertEquals(strlen($chunk),strlen($encrypted)); // $decrypted=OC_Encryption\Crypt::decrypt($encrypted,$key); // $decrypted=rtrim($decrypted, "\0"); -// $this->assertEqual($decrypted,$chunk); +// $this->assertEquals($decrypted,$chunk); // // $encrypted=OC_Encryption\Crypt::blockEncrypt($source,$key); // $decrypted=OC_Encryption\Crypt::blockDecrypt($encrypted,$key); // $this->assertNotEquals($encrypted,$source); -// $this->assertEqual($decrypted,$source); +// $this->assertEquals($decrypted,$source); // // $tmpFileEncrypted=OCP\Files::tmpFile(); // OC_Encryption\Crypt::encryptfile($file,$tmpFileEncrypted,$key); // $encrypted=file_get_contents($tmpFileEncrypted); // $decrypted=OC_Encryption\Crypt::blockDecrypt($encrypted,$key); // $this->assertNotEquals($encrypted,$source); -// $this->assertEqual($decrypted,$source); +// $this->assertEquals($decrypted,$source); // // $tmpFileDecrypted=OCP\Files::tmpFile(); // OC_Encryption\Crypt::decryptfile($tmpFileEncrypted,$tmpFileDecrypted,$key); // $decrypted=file_get_contents($tmpFileDecrypted); -// $this->assertEqual($decrypted,$source); +// $this->assertEquals($decrypted,$source); // // $file=OC::$SERVERROOT.'/core/img/weather-clear.png'; // $source=file_get_contents($file); //binary file // $encrypted=OC_Encryption\Crypt::encrypt($source,$key); // $decrypted=OC_Encryption\Crypt::decrypt($encrypted,$key); // $decrypted=rtrim($decrypted, "\0"); -// $this->assertEqual($decrypted,$source); +// $this->assertEquals($decrypted,$source); // // $encrypted=OC_Encryption\Crypt::blockEncrypt($source,$key); // $decrypted=OC_Encryption\Crypt::blockDecrypt($encrypted,$key); -// $this->assertEqual($decrypted,$source); +// $this->assertEquals($decrypted,$source); // // } // @@ -657,11 +657,11 @@ class Test_Crypt extends \PHPUnit_Framework_TestCase { // $decrypted=OC_Encryption\Crypt::decrypt($encrypted,$key); // // $decrypted=rtrim($decrypted, "\0"); -// $this->assertEqual($decrypted,$source); +// $this->assertEquals($decrypted,$source); // // $encrypted=OC_Encryption\Crypt::blockEncrypt($source,$key); // $decrypted=OC_Encryption\Crypt::blockDecrypt($encrypted,$key,strlen($source)); -// $this->assertEqual($decrypted,$source); +// $this->assertEquals($decrypted,$source); // } } diff --git a/apps/files_encryption/test/proxy.php b/apps/files_encryption/test/proxy.php index 51e77100baa..709730f7609 100644 --- a/apps/files_encryption/test/proxy.php +++ b/apps/files_encryption/test/proxy.php @@ -109,7 +109,7 @@ // // } -// class Test_CryptProxy extends UnitTestCase { +// class Test_CryptProxy extends PHPUnit_Framework_TestCase { // private $oldConfig; // private $oldKey; // @@ -161,9 +161,9 @@ // OC_FileProxy::$enabled=true; // // $fromFile=OC_Filesystem::file_get_contents('/file'); -// $this->assertNotEqual($original,$stored); -// $this->assertEqual(strlen($original),strlen($fromFile)); -// $this->assertEqual($original,$fromFile); +// $this->assertNotEquals($original,$stored); +// $this->assertEquals(strlen($original),strlen($fromFile)); +// $this->assertEquals($original,$fromFile); // // } // @@ -181,12 +181,12 @@ // $stored=$rootView->file_get_contents($userDir.'/file'); // OC_FileProxy::$enabled=true; // -// $this->assertNotEqual($original,$stored); +// $this->assertNotEquals($original,$stored); // $fromFile=$rootView->file_get_contents($userDir.'/file'); -// $this->assertEqual($original,$fromFile); +// $this->assertEquals($original,$fromFile); // // $fromFile=$view->file_get_contents('files/file'); -// $this->assertEqual($original,$fromFile); +// $this->assertEquals($original,$fromFile); // } // // public function testBinary(){ @@ -200,9 +200,9 @@ // OC_FileProxy::$enabled=true; // // $fromFile=OC_Filesystem::file_get_contents('/file'); -// $this->assertNotEqual($original,$stored); -// $this->assertEqual(strlen($original),strlen($fromFile)); -// $this->assertEqual($original,$fromFile); +// $this->assertNotEquals($original,$stored); +// $this->assertEquals(strlen($original),strlen($fromFile)); +// $this->assertEquals($original,$fromFile); // // $file=__DIR__.'/zeros'; // $original=file_get_contents($file); @@ -214,7 +214,7 @@ // OC_FileProxy::$enabled=true; // // $fromFile=OC_Filesystem::file_get_contents('/file'); -// $this->assertNotEqual($original,$stored); -// $this->assertEqual(strlen($original),strlen($fromFile)); +// $this->assertNotEquals($original,$stored); +// $this->assertEquals(strlen($original),strlen($fromFile)); // } // } diff --git a/apps/files_encryption/test/stream.php b/apps/files_encryption/test/stream.php index 4211cab3104..ba82ac80eab 100644 --- a/apps/files_encryption/test/stream.php +++ b/apps/files_encryption/test/stream.php @@ -117,7 +117,7 @@ // // // // fclose( $stream ); // // -// // $this->assertEqual( 'foobar', $data ); +// // $this->assertEquals( 'foobar', $data ); // // // // // // $file = OC::$SERVERROOT.'/3rdparty/MDB2.php'; @@ -139,15 +139,15 @@ // // // // $original = file_get_contents( $file ); // // -// // $this->assertEqual( strlen( $original ), strlen( $data ) ); +// // $this->assertEquals( strlen( $original ), strlen( $data ) ); // // -// // $this->assertEqual( $original, $data ); +// // $this->assertEquals( $original, $data ); // // // // } // // } // -// // class Test_CryptStream extends UnitTestCase { +// // class Test_CryptStream extends PHPUnit_Framework_TestCase { // // private $tmpFiles=array(); // // // // function testStream(){ @@ -158,7 +158,7 @@ // // $stream=$this->getStream('test1','r',strlen('foobar')); // // $data=fread($stream,6); // // fclose($stream); -// // $this->assertEqual('foobar',$data); +// // $this->assertEquals('foobar',$data); // // // // $file=OC::$SERVERROOT.'/3rdparty/MDB2.php'; // // $source=fopen($file,'r'); @@ -170,8 +170,8 @@ // // $stream=$this->getStream('test2','r',filesize($file)); // // $data=stream_get_contents($stream); // // $original=file_get_contents($file); -// // $this->assertEqual(strlen($original),strlen($data)); -// // $this->assertEqual($original,$data); +// // $this->assertEquals(strlen($original),strlen($data)); +// // $this->assertEquals($original,$data); // // } // // // // /** @@ -207,8 +207,8 @@ // // $stream=$this->getStream('test','r',strlen($source)); // // $data=stream_get_contents($stream); // // fclose($stream); -// // $this->assertEqual(strlen($data),strlen($source)); -// // $this->assertEqual($source,$data); +// // $this->assertEquals(strlen($data),strlen($source)); +// // $this->assertEquals($source,$data); // // // // $file=__DIR__.'/zeros'; // // $source=file_get_contents($file); @@ -220,7 +220,7 @@ // // $stream=$this->getStream('test2','r',strlen($source)); // // $data=stream_get_contents($stream); // // fclose($stream); -// // $this->assertEqual(strlen($data),strlen($source)); -// // $this->assertEqual($source,$data); +// // $this->assertEquals(strlen($data),strlen($source)); +// // $this->assertEquals($source,$data); // // } // // } diff --git a/apps/files_encryption/test/util.php b/apps/files_encryption/test/util.php index 016787fbfba..a299ec67f59 100755 --- a/apps/files_encryption/test/util.php +++ b/apps/files_encryption/test/util.php @@ -203,7 +203,7 @@ class Test_Enc_Util extends \PHPUnit_Framework_TestCase { // // $decrypted = $c->legacyDecrypt( $encrypted, $c->legacyKey ); // -// $this->assertEqual( $decrypted, $this->data ); +// $this->assertEquals( $decrypted, $this->data ); // // } diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/ftp.php index d0404b5f34c..91e4589ed18 100644 --- a/apps/files_external/tests/ftp.php +++ b/apps/files_external/tests/ftp.php @@ -32,18 +32,18 @@ class Test_Filestorage_FTP extends Test_FileStorage { 'root' => '/', 'secure' => false ); $instance = new OC_Filestorage_FTP($config); - $this->assertEqual('ftp://ftp:ftp@localhost/', $instance->constructUrl('')); + $this->assertEquals('ftp://ftp:ftp@localhost/', $instance->constructUrl('')); $config['secure'] = true; $instance = new OC_Filestorage_FTP($config); - $this->assertEqual('ftps://ftp:ftp@localhost/', $instance->constructUrl('')); + $this->assertEquals('ftps://ftp:ftp@localhost/', $instance->constructUrl('')); $config['secure'] = 'false'; $instance = new OC_Filestorage_FTP($config); - $this->assertEqual('ftp://ftp:ftp@localhost/', $instance->constructUrl('')); + $this->assertEquals('ftp://ftp:ftp@localhost/', $instance->constructUrl('')); $config['secure'] = 'true'; $instance = new OC_Filestorage_FTP($config); - $this->assertEqual('ftps://ftp:ftp@localhost/', $instance->constructUrl('')); + $this->assertEquals('ftps://ftp:ftp@localhost/', $instance->constructUrl('')); } } diff --git a/apps/user_ldap/tests/group_ldap.php b/apps/user_ldap/tests/group_ldap.php index f99902d32f5..ae635597b71 100644 --- a/apps/user_ldap/tests/group_ldap.php +++ b/apps/user_ldap/tests/group_ldap.php @@ -20,7 +20,7 @@ * */ -class Test_Group_Ldap extends UnitTestCase { +class Test_Group_Ldap extends PHPUnit_Framework_TestCase { function setUp() { OC_Group::clearBackends(); } diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 115a15883a0..b97161ee6e4 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -8,24 +8,5 @@ if(!class_exists('PHPUnit_Framework_TestCase')) { require_once('PHPUnit/Autoload.php'); } -//SimpleTest compatibility -abstract class UnitTestCase extends PHPUnit_Framework_TestCase{ - function assertEqual($expected, $actual, $string='') { - $this->assertEquals($expected, $actual, $string); - } - - function assertNotEqual($expected, $actual, $string='') { - $this->assertNotEquals($expected, $actual, $string); - } - - static function assertTrue($actual, $string='') { - parent::assertTrue((bool)$actual, $string); - } - - static function assertFalse($actual, $string='') { - parent::assertFalse((bool)$actual, $string); - } -} - OC_Hook::clear(); OC_Log::$enabled = false; diff --git a/tests/lib/archive.php b/tests/lib/archive.php index cd2ca6630a5..be5cc897a67 100644 --- a/tests/lib/archive.php +++ b/tests/lib/archive.php @@ -6,7 +6,7 @@ * See the COPYING-README file. */ -abstract class Test_Archive extends UnitTestCase { +abstract class Test_Archive extends PHPUnit_Framework_TestCase { /** * @var OC_Archive */ @@ -27,7 +27,7 @@ abstract class Test_Archive extends UnitTestCase { $this->instance=$this->getExisting(); $allFiles=$this->instance->getFiles(); $expected=array('lorem.txt','logo-wide.png','dir/', 'dir/lorem.txt'); - $this->assertEqual(4, count($allFiles), 'only found '.count($allFiles).' out of 4 expected files'); + $this->assertEquals(4, count($allFiles), 'only found '.count($allFiles).' out of 4 expected files'); foreach($expected as $file) { $this->assertContains($file, $allFiles, 'cant find '. $file . ' in archive'); $this->assertTrue($this->instance->fileExists($file), 'file '.$file.' does not exist in archive'); @@ -36,14 +36,14 @@ abstract class Test_Archive extends UnitTestCase { $rootContent=$this->instance->getFolder(''); $expected=array('lorem.txt','logo-wide.png', 'dir/'); - $this->assertEqual(3, count($rootContent)); + $this->assertEquals(3, count($rootContent)); foreach($expected as $file) { $this->assertContains($file, $rootContent, 'cant find '. $file . ' in archive'); } $dirContent=$this->instance->getFolder('dir/'); $expected=array('lorem.txt'); - $this->assertEqual(1, count($dirContent)); + $this->assertEquals(1, count($dirContent)); foreach($expected as $file) { $this->assertContains($file, $dirContent, 'cant find '. $file . ' in archive'); } @@ -53,36 +53,36 @@ abstract class Test_Archive extends UnitTestCase { $this->instance=$this->getExisting(); $dir=OC::$SERVERROOT.'/tests/data'; $textFile=$dir.'/lorem.txt'; - $this->assertEqual(file_get_contents($textFile), $this->instance->getFile('lorem.txt')); + $this->assertEquals(file_get_contents($textFile), $this->instance->getFile('lorem.txt')); $tmpFile=OCP\Files::tmpFile('.txt'); $this->instance->extractFile('lorem.txt', $tmpFile); - $this->assertEqual(file_get_contents($textFile), file_get_contents($tmpFile)); + $this->assertEquals(file_get_contents($textFile), file_get_contents($tmpFile)); } public function testWrite() { $dir=OC::$SERVERROOT.'/tests/data'; $textFile=$dir.'/lorem.txt'; $this->instance=$this->getNew(); - $this->assertEqual(0, count($this->instance->getFiles())); + $this->assertEquals(0, count($this->instance->getFiles())); $this->instance->addFile('lorem.txt', $textFile); - $this->assertEqual(1, count($this->instance->getFiles())); + $this->assertEquals(1, count($this->instance->getFiles())); $this->assertTrue($this->instance->fileExists('lorem.txt')); $this->assertFalse($this->instance->fileExists('lorem.txt/')); - $this->assertEqual(file_get_contents($textFile), $this->instance->getFile('lorem.txt')); + $this->assertEquals(file_get_contents($textFile), $this->instance->getFile('lorem.txt')); $this->instance->addFile('lorem.txt', 'foobar'); - $this->assertEqual('foobar', $this->instance->getFile('lorem.txt')); + $this->assertEquals('foobar', $this->instance->getFile('lorem.txt')); } public function testReadStream() { $dir=OC::$SERVERROOT.'/tests/data'; $this->instance=$this->getExisting(); $fh=$this->instance->getStream('lorem.txt', 'r'); - $this->assertTrue($fh); + $this->assertTrue((bool)$fh); $content=fread($fh, $this->instance->filesize('lorem.txt')); fclose($fh); - $this->assertEqual(file_get_contents($dir.'/lorem.txt'), $content); + $this->assertEquals(file_get_contents($dir.'/lorem.txt'), $content); } public function testWriteStream() { $dir=OC::$SERVERROOT.'/tests/data'; @@ -93,7 +93,7 @@ abstract class Test_Archive extends UnitTestCase { fclose($source); fclose($fh); $this->assertTrue($this->instance->fileExists('lorem.txt')); - $this->assertEqual(file_get_contents($dir.'/lorem.txt'), $this->instance->getFile('lorem.txt')); + $this->assertEquals(file_get_contents($dir.'/lorem.txt'), $this->instance->getFile('lorem.txt')); } public function testFolder() { $this->instance=$this->getNew(); @@ -111,10 +111,10 @@ abstract class Test_Archive extends UnitTestCase { $this->instance=$this->getExisting(); $tmpDir=OCP\Files::tmpFolder(); $this->instance->extract($tmpDir); - $this->assertEqual(true, file_exists($tmpDir.'lorem.txt')); - $this->assertEqual(true, file_exists($tmpDir.'dir/lorem.txt')); - $this->assertEqual(true, file_exists($tmpDir.'logo-wide.png')); - $this->assertEqual(file_get_contents($dir.'/lorem.txt'), file_get_contents($tmpDir.'lorem.txt')); + $this->assertEquals(true, file_exists($tmpDir.'lorem.txt')); + $this->assertEquals(true, file_exists($tmpDir.'dir/lorem.txt')); + $this->assertEquals(true, file_exists($tmpDir.'logo-wide.png')); + $this->assertEquals(file_get_contents($dir.'/lorem.txt'), file_get_contents($tmpDir.'lorem.txt')); OCP\Files::rmdirr($tmpDir); } public function testMoveRemove() { @@ -126,7 +126,7 @@ abstract class Test_Archive extends UnitTestCase { $this->instance->rename('lorem.txt', 'target.txt'); $this->assertTrue($this->instance->fileExists('target.txt')); $this->assertFalse($this->instance->fileExists('lorem.txt')); - $this->assertEqual(file_get_contents($textFile), $this->instance->getFile('target.txt')); + $this->assertEquals(file_get_contents($textFile), $this->instance->getFile('target.txt')); $this->instance->remove('target.txt'); $this->assertFalse($this->instance->fileExists('target.txt')); } diff --git a/tests/lib/cache.php b/tests/lib/cache.php index 1a1287ff135..3dcf39f7d60 100644 --- a/tests/lib/cache.php +++ b/tests/lib/cache.php @@ -6,7 +6,7 @@ * See the COPYING-README file. */ -abstract class Test_Cache extends UnitTestCase { +abstract class Test_Cache extends PHPUnit_Framework_TestCase { /** * @var OC_Cache cache; */ @@ -26,19 +26,19 @@ abstract class Test_Cache extends UnitTestCase { $this->instance->set('value1', $value); $this->assertTrue($this->instance->hasKey('value1')); $received=$this->instance->get('value1'); - $this->assertEqual($value, $received, 'Value recieved from cache not equal to the original'); + $this->assertEquals($value, $received, 'Value recieved from cache not equal to the original'); $value='ipsum lorum'; $this->instance->set('value1', $value); $received=$this->instance->get('value1'); - $this->assertEqual($value, $received, 'Value not overwritten by second set'); + $this->assertEquals($value, $received, 'Value not overwritten by second set'); $value2='foobar'; $this->instance->set('value2', $value2); $received2=$this->instance->get('value2'); $this->assertTrue($this->instance->hasKey('value1')); $this->assertTrue($this->instance->hasKey('value2')); - $this->assertEqual($value, $received, 'Value changed while setting other variable'); - $this->assertEqual($value2, $received2, 'Second value not equal to original'); + $this->assertEquals($value, $received, 'Value changed while setting other variable'); + $this->assertEquals($value2, $received2, 'Second value not equal to original'); $this->assertFalse($this->instance->hasKey('not_set')); $this->assertNull($this->instance->get('not_set'), 'Unset value not equal to null'); diff --git a/tests/lib/db.php b/tests/lib/db.php index c2eb38dae83..440f3fb6bfd 100644 --- a/tests/lib/db.php +++ b/tests/lib/db.php @@ -6,7 +6,7 @@ * See the COPYING-README file. */ -class Test_DB extends UnitTestCase { +class Test_DB extends PHPUnit_Framework_TestCase { protected $backupGlobals = FALSE; protected static $schema_file = 'static://test_db_scheme'; @@ -35,18 +35,18 @@ class Test_DB extends UnitTestCase { public function testQuotes() { $query = OC_DB::prepare('SELECT `fullname` FROM *PREFIX*'.$this->table2.' WHERE `uri` = ?'); $result = $query->execute(array('uri_1')); - $this->assertTrue($result); + $this->assertTrue((bool)$result); $row = $result->fetchRow(); $this->assertFalse($row); $query = OC_DB::prepare('INSERT INTO *PREFIX*'.$this->table2.' (`fullname`,`uri`) VALUES (?,?)'); $result = $query->execute(array('fullname test', 'uri_1')); - $this->assertTrue($result); + $this->assertTrue((bool)$result); $query = OC_DB::prepare('SELECT `fullname`,`uri` FROM *PREFIX*'.$this->table2.' WHERE `uri` = ?'); $result = $query->execute(array('uri_1')); - $this->assertTrue($result); + $this->assertTrue((bool)$result); $row = $result->fetchRow(); $this->assertArrayHasKey('fullname', $row); - $this->assertEqual($row['fullname'], 'fullname test'); + $this->assertEquals($row['fullname'], 'fullname test'); $row = $result->fetchRow(); $this->assertFalse($row); } @@ -54,19 +54,19 @@ class Test_DB extends UnitTestCase { public function testNOW() { $query = OC_DB::prepare('INSERT INTO *PREFIX*'.$this->table2.' (`fullname`,`uri`) VALUES (NOW(),?)'); $result = $query->execute(array('uri_2')); - $this->assertTrue($result); + $this->assertTrue((bool)$result); $query = OC_DB::prepare('SELECT `fullname`,`uri` FROM *PREFIX*'.$this->table2.' WHERE `uri` = ?'); $result = $query->execute(array('uri_2')); - $this->assertTrue($result); + $this->assertTrue((bool)$result); } public function testUNIX_TIMESTAMP() { $query = OC_DB::prepare('INSERT INTO *PREFIX*'.$this->table2.' (`fullname`,`uri`) VALUES (UNIX_TIMESTAMP(),?)'); $result = $query->execute(array('uri_3')); - $this->assertTrue($result); + $this->assertTrue((bool)$result); $query = OC_DB::prepare('SELECT `fullname`,`uri` FROM *PREFIX*'.$this->table2.' WHERE `uri` = ?'); $result = $query->execute(array('uri_3')); - $this->assertTrue($result); + $this->assertTrue((bool)$result); } public function testinsertIfNotExist() { @@ -85,13 +85,13 @@ class Test_DB extends UnitTestCase { 'type' => $entry['type'], 'category' => $entry['category'], )); - $this->assertTrue($result); + $this->assertTrue((bool)$result); } $query = OC_DB::prepare('SELECT * FROM *PREFIX*'.$this->table3); $result = $query->execute(); - $this->assertTrue($result); - $this->assertEqual('4', $result->numRows()); + $this->assertTrue((bool)$result); + $this->assertEquals('4', $result->numRows()); } public function testinsertIfNotExistDontOverwrite() { @@ -102,14 +102,14 @@ class Test_DB extends UnitTestCase { // Normal test to have same known data inserted. $query = OC_DB::prepare('INSERT INTO *PREFIX*'.$this->table2.' (`fullname`, `uri`, `carddata`) VALUES (?, ?, ?)'); $result = $query->execute(array($fullname, $uri, $carddata)); - $this->assertTrue($result); + $this->assertTrue((bool)$result); $query = OC_DB::prepare('SELECT `fullname`, `uri`, `carddata` FROM *PREFIX*'.$this->table2.' WHERE `uri` = ?'); $result = $query->execute(array($uri)); - $this->assertTrue($result); + $this->assertTrue((bool)$result); $row = $result->fetchRow(); $this->assertArrayHasKey('carddata', $row); - $this->assertEqual($carddata, $row['carddata']); - $this->assertEqual('1', $result->numRows()); + $this->assertEquals($carddata, $row['carddata']); + $this->assertEquals('1', $result->numRows()); // Try to insert a new row $result = OC_DB::insertIfNotExist('*PREFIX*'.$this->table2, @@ -117,17 +117,17 @@ class Test_DB extends UnitTestCase { 'fullname' => $fullname, 'uri' => $uri, )); - $this->assertTrue($result); + $this->assertTrue((bool)$result); $query = OC_DB::prepare('SELECT `fullname`, `uri`, `carddata` FROM *PREFIX*'.$this->table2.' WHERE `uri` = ?'); $result = $query->execute(array($uri)); - $this->assertTrue($result); + $this->assertTrue((bool)$result); $row = $result->fetchRow(); $this->assertArrayHasKey('carddata', $row); // Test that previously inserted data isn't overwritten - $this->assertEqual($carddata, $row['carddata']); + $this->assertEquals($carddata, $row['carddata']); // And that a new row hasn't been inserted. - $this->assertEqual('1', $result->numRows()); + $this->assertEquals('1', $result->numRows()); } } diff --git a/tests/lib/dbschema.php b/tests/lib/dbschema.php index cd408160afb..fb60ce7dbb7 100644 --- a/tests/lib/dbschema.php +++ b/tests/lib/dbschema.php @@ -6,7 +6,7 @@ * See the COPYING-README file. */ -class Test_DBSchema extends UnitTestCase { +class Test_DBSchema extends PHPUnit_Framework_TestCase { protected static $schema_file = 'static://test_db_scheme'; protected static $schema_file2 = 'static://test_db_scheme2'; protected $test_prefix; diff --git a/tests/lib/filestorage.php b/tests/lib/filestorage.php index e82a6f54e3d..c408efb7543 100644 --- a/tests/lib/filestorage.php +++ b/tests/lib/filestorage.php @@ -20,7 +20,7 @@ * */ -abstract class Test_FileStorage extends UnitTestCase { +abstract class Test_FileStorage extends PHPUnit_Framework_TestCase { /** * @var OC_Filestorage instance */ @@ -34,7 +34,7 @@ abstract class Test_FileStorage extends UnitTestCase { $this->assertTrue($this->instance->isReadable('/'), 'Root folder is not readable'); $this->assertTrue($this->instance->is_dir('/'), 'Root folder is not a directory'); $this->assertFalse($this->instance->is_file('/'), 'Root folder is a file'); - $this->assertEqual('dir', $this->instance->filetype('/')); + $this->assertEquals('dir', $this->instance->filetype('/')); //without this, any further testing would be useless, not an acutal requirement for filestorage though $this->assertTrue($this->instance->isUpdatable('/'), 'Root folder is not writable'); @@ -48,8 +48,8 @@ abstract class Test_FileStorage extends UnitTestCase { $this->assertTrue($this->instance->file_exists('/folder')); $this->assertTrue($this->instance->is_dir('/folder')); $this->assertFalse($this->instance->is_file('/folder')); - $this->assertEqual('dir', $this->instance->filetype('/folder')); - $this->assertEqual(0, $this->instance->filesize('/folder')); + $this->assertEquals('dir', $this->instance->filetype('/folder')); + $this->assertEquals(0, $this->instance->filesize('/folder')); $this->assertTrue($this->instance->isReadable('/folder')); $this->assertTrue($this->instance->isUpdatable('/folder')); @@ -60,7 +60,7 @@ abstract class Test_FileStorage extends UnitTestCase { $content[] = $file; } } - $this->assertEqual(array('folder'), $content); + $this->assertEquals(array('folder'), $content); $this->assertFalse($this->instance->mkdir('/folder')); //cant create existing folders $this->assertTrue($this->instance->rmdir('/folder')); @@ -76,7 +76,7 @@ abstract class Test_FileStorage extends UnitTestCase { $content[] = $file; } } - $this->assertEqual(array(), $content); + $this->assertEquals(array(), $content); } /** @@ -89,31 +89,31 @@ abstract class Test_FileStorage extends UnitTestCase { //fill a file with string data $this->instance->file_put_contents('/lorem.txt', $sourceText); $this->assertFalse($this->instance->is_dir('/lorem.txt')); - $this->assertEqual($sourceText, $this->instance->file_get_contents('/lorem.txt'), 'data returned from file_get_contents is not equal to the source data'); + $this->assertEquals($sourceText, $this->instance->file_get_contents('/lorem.txt'), 'data returned from file_get_contents is not equal to the source data'); //empty the file $this->instance->file_put_contents('/lorem.txt', ''); - $this->assertEqual('', $this->instance->file_get_contents('/lorem.txt'), 'file not emptied'); + $this->assertEquals('', $this->instance->file_get_contents('/lorem.txt'), 'file not emptied'); } /** * test various known mimetypes */ public function testMimeType() { - $this->assertEqual('httpd/unix-directory', $this->instance->getMimeType('/')); - $this->assertEqual(false, $this->instance->getMimeType('/non/existing/file')); + $this->assertEquals('httpd/unix-directory', $this->instance->getMimeType('/')); + $this->assertEquals(false, $this->instance->getMimeType('/non/existing/file')); $textFile = OC::$SERVERROOT . '/tests/data/lorem.txt'; $this->instance->file_put_contents('/lorem.txt', file_get_contents($textFile, 'r')); - $this->assertEqual('text/plain', $this->instance->getMimeType('/lorem.txt')); + $this->assertEquals('text/plain', $this->instance->getMimeType('/lorem.txt')); $pngFile = OC::$SERVERROOT . '/tests/data/logo-wide.png'; $this->instance->file_put_contents('/logo-wide.png', file_get_contents($pngFile, 'r')); - $this->assertEqual('image/png', $this->instance->getMimeType('/logo-wide.png')); + $this->assertEquals('image/png', $this->instance->getMimeType('/logo-wide.png')); $svgFile = OC::$SERVERROOT . '/tests/data/logo-wide.svg'; $this->instance->file_put_contents('/logo-wide.svg', file_get_contents($svgFile, 'r')); - $this->assertEqual('image/svg+xml', $this->instance->getMimeType('/logo-wide.svg')); + $this->assertEquals('image/svg+xml', $this->instance->getMimeType('/logo-wide.svg')); } public function testCopyAndMove() { @@ -121,12 +121,12 @@ abstract class Test_FileStorage extends UnitTestCase { $this->instance->file_put_contents('/source.txt', file_get_contents($textFile)); $this->instance->copy('/source.txt', '/target.txt'); $this->assertTrue($this->instance->file_exists('/target.txt')); - $this->assertEqual($this->instance->file_get_contents('/source.txt'), $this->instance->file_get_contents('/target.txt')); + $this->assertEquals($this->instance->file_get_contents('/source.txt'), $this->instance->file_get_contents('/target.txt')); $this->instance->rename('/source.txt', '/target2.txt'); $this->assertTrue($this->instance->file_exists('/target2.txt')); $this->assertFalse($this->instance->file_exists('/source.txt')); - $this->assertEqual(file_get_contents($textFile), $this->instance->file_get_contents('/target.txt')); + $this->assertEquals(file_get_contents($textFile), $this->instance->file_get_contents('/target.txt')); } public function testLocal() { @@ -134,7 +134,7 @@ abstract class Test_FileStorage extends UnitTestCase { $this->instance->file_put_contents('/lorem.txt', file_get_contents($textFile)); $localFile = $this->instance->getLocalFile('/lorem.txt'); $this->assertTrue(file_exists($localFile)); - $this->assertEqual(file_get_contents($localFile), file_get_contents($textFile)); + $this->assertEquals(file_get_contents($localFile), file_get_contents($textFile)); $this->instance->mkdir('/folder'); $this->instance->file_put_contents('/folder/lorem.txt', file_get_contents($textFile)); @@ -145,9 +145,9 @@ abstract class Test_FileStorage extends UnitTestCase { $this->assertTrue(is_dir($localFolder)); $this->assertTrue(file_exists($localFolder . '/lorem.txt')); - $this->assertEqual(file_get_contents($localFolder . '/lorem.txt'), file_get_contents($textFile)); - $this->assertEqual(file_get_contents($localFolder . '/bar.txt'), 'asd'); - $this->assertEqual(file_get_contents($localFolder . '/recursive/file.txt'), 'foo'); + $this->assertEquals(file_get_contents($localFolder . '/lorem.txt'), file_get_contents($textFile)); + $this->assertEquals(file_get_contents($localFolder . '/bar.txt'), 'asd'); + $this->assertEquals(file_get_contents($localFolder . '/recursive/file.txt'), 'foo'); } public function testStat() { @@ -162,12 +162,12 @@ abstract class Test_FileStorage extends UnitTestCase { $this->assertTrue(($ctimeStart - 1) <= $mTime); $this->assertTrue($mTime <= ($ctimeEnd + 1)); - $this->assertEqual(filesize($textFile), $this->instance->filesize('/lorem.txt')); + $this->assertEquals(filesize($textFile), $this->instance->filesize('/lorem.txt')); $stat = $this->instance->stat('/lorem.txt'); //only size and mtime are requered in the result - $this->assertEqual($stat['size'], $this->instance->filesize('/lorem.txt')); - $this->assertEqual($stat['mtime'], $mTime); + $this->assertEquals($stat['size'], $this->instance->filesize('/lorem.txt')); + $this->assertEquals($stat['mtime'], $mTime); $mtimeStart = time(); $supportsTouch = $this->instance->touch('/lorem.txt'); @@ -181,7 +181,7 @@ abstract class Test_FileStorage extends UnitTestCase { if ($this->instance->touch('/lorem.txt', 100) !== false) { $mTime = $this->instance->filemtime('/lorem.txt'); - $this->assertEqual($mTime, 100); + $this->assertEquals($mTime, 100); } } @@ -207,7 +207,7 @@ abstract class Test_FileStorage extends UnitTestCase { $svgFile = OC::$SERVERROOT . '/tests/data/logo-wide.svg'; $this->instance->file_put_contents('/logo-wide.svg', file_get_contents($svgFile, 'r')); $result = $this->instance->search('logo'); - $this->assertEqual(2, count($result)); + $this->assertEquals(2, count($result)); $this->assertContains('/logo-wide.svg', $result); $this->assertContains('/logo-wide.png', $result); } @@ -229,6 +229,6 @@ abstract class Test_FileStorage extends UnitTestCase { $fh = $this->instance->fopen('foo', 'r'); $content = stream_get_contents($fh); - $this->assertEqual(file_get_contents($textFile), $content); + $this->assertEquals(file_get_contents($textFile), $content); } } diff --git a/tests/lib/filesystem.php b/tests/lib/filesystem.php index 5cced4946d9..ee31ef4364d 100644 --- a/tests/lib/filesystem.php +++ b/tests/lib/filesystem.php @@ -20,7 +20,7 @@ * */ -class Test_Filesystem extends UnitTestCase { +class Test_Filesystem extends PHPUnit_Framework_TestCase { /** * @var array tmpDirs */ @@ -47,28 +47,28 @@ class Test_Filesystem extends UnitTestCase { public function testMount() { OC_Filesystem::mount('OC_Filestorage_Local', self::getStorageData(), '/'); - $this->assertEqual('/', OC_Filesystem::getMountPoint('/')); - $this->assertEqual('/', OC_Filesystem::getMountPoint('/some/folder')); - $this->assertEqual('', OC_Filesystem::getInternalPath('/')); - $this->assertEqual('some/folder', OC_Filesystem::getInternalPath('/some/folder')); + $this->assertEquals('/', OC_Filesystem::getMountPoint('/')); + $this->assertEquals('/', OC_Filesystem::getMountPoint('/some/folder')); + $this->assertEquals('', OC_Filesystem::getInternalPath('/')); + $this->assertEquals('some/folder', OC_Filesystem::getInternalPath('/some/folder')); OC_Filesystem::mount('OC_Filestorage_Local', self::getStorageData(), '/some'); - $this->assertEqual('/', OC_Filesystem::getMountPoint('/')); - $this->assertEqual('/some/', OC_Filesystem::getMountPoint('/some/folder')); - $this->assertEqual('/some/', OC_Filesystem::getMountPoint('/some/')); - $this->assertEqual('/', OC_Filesystem::getMountPoint('/some')); - $this->assertEqual('folder', OC_Filesystem::getInternalPath('/some/folder')); + $this->assertEquals('/', OC_Filesystem::getMountPoint('/')); + $this->assertEquals('/some/', OC_Filesystem::getMountPoint('/some/folder')); + $this->assertEquals('/some/', OC_Filesystem::getMountPoint('/some/')); + $this->assertEquals('/', OC_Filesystem::getMountPoint('/some')); + $this->assertEquals('folder', OC_Filesystem::getInternalPath('/some/folder')); } public function testNormalize() { - $this->assertEqual('/path', OC_Filesystem::normalizePath('/path/')); - $this->assertEqual('/path/', OC_Filesystem::normalizePath('/path/', false)); - $this->assertEqual('/path', OC_Filesystem::normalizePath('path')); - $this->assertEqual('/path', OC_Filesystem::normalizePath('\path')); - $this->assertEqual('/foo/bar', OC_Filesystem::normalizePath('/foo//bar/')); - $this->assertEqual('/foo/bar', OC_Filesystem::normalizePath('/foo////bar')); + $this->assertEquals('/path', OC_Filesystem::normalizePath('/path/')); + $this->assertEquals('/path/', OC_Filesystem::normalizePath('/path/', false)); + $this->assertEquals('/path', OC_Filesystem::normalizePath('path')); + $this->assertEquals('/path', OC_Filesystem::normalizePath('\path')); + $this->assertEquals('/foo/bar', OC_Filesystem::normalizePath('/foo//bar/')); + $this->assertEquals('/foo/bar', OC_Filesystem::normalizePath('/foo////bar')); if (class_exists('Normalizer')) { - $this->assertEqual("/foo/bar\xC3\xBC", OC_Filesystem::normalizePath("/foo/baru\xCC\x88")); + $this->assertEquals("/foo/bar\xC3\xBC", OC_Filesystem::normalizePath("/foo/baru\xCC\x88")); } } @@ -100,10 +100,10 @@ class Test_Filesystem extends UnitTestCase { $rootView->mkdir('/' . $user); $rootView->mkdir('/' . $user . '/files'); - $this->assertFalse($rootView->file_put_contents('/.htaccess', 'foo')); - $this->assertFalse(OC_Filesystem::file_put_contents('/.htaccess', 'foo')); + $this->assertFalse((bool)$rootView->file_put_contents('/.htaccess', 'foo')); + $this->assertFalse((bool)OC_Filesystem::file_put_contents('/.htaccess', 'foo')); $fh = fopen(__FILE__, 'r'); - $this->assertFalse(OC_Filesystem::file_put_contents('/.htaccess', $fh)); + $this->assertFalse((bool)OC_Filesystem::file_put_contents('/.htaccess', $fh)); } public function testHooks() { @@ -134,6 +134,6 @@ class Test_Filesystem extends UnitTestCase { public function dummyHook($arguments) { $path = $arguments['path']; - $this->assertEqual($path, OC_Filesystem::normalizePath($path)); //the path passed to the hook should already be normalized + $this->assertEquals($path, OC_Filesystem::normalizePath($path)); //the path passed to the hook should already be normalized } } diff --git a/tests/lib/geo.php b/tests/lib/geo.php index d4951ee79e7..82e61608687 100644 --- a/tests/lib/geo.php +++ b/tests/lib/geo.php @@ -6,7 +6,7 @@ * See the COPYING-README file. */ -class Test_Geo extends UnitTestCase { +class Test_Geo extends PHPUnit_Framework_TestCase { function testTimezone() { $result = OC_Geo::timezone(3, 3); $expected = 'Africa/Porto-Novo'; diff --git a/tests/lib/group.php b/tests/lib/group.php index 28264b0f168..9128bd7ddce 100644 --- a/tests/lib/group.php +++ b/tests/lib/group.php @@ -22,7 +22,7 @@ * */ -class Test_Group extends UnitTestCase { +class Test_Group extends PHPUnit_Framework_TestCase { function setUp() { OC_Group::clearBackends(); } @@ -43,24 +43,24 @@ class Test_Group extends UnitTestCase { $this->assertFalse(OC_Group::inGroup($user1, $group2)); $this->assertFalse(OC_Group::inGroup($user2, $group2)); - $this->assertTrue(OC_Group::addToGroup($user1, $group1)); + $this->assertTrue((bool)OC_Group::addToGroup($user1, $group1)); $this->assertTrue(OC_Group::inGroup($user1, $group1)); $this->assertFalse(OC_Group::inGroup($user2, $group1)); $this->assertFalse(OC_Group::inGroup($user1, $group2)); $this->assertFalse(OC_Group::inGroup($user2, $group2)); - $this->assertFalse(OC_Group::addToGroup($user1, $group1)); + $this->assertFalse((bool)OC_Group::addToGroup($user1, $group1)); - $this->assertEqual(array($user1), OC_Group::usersInGroup($group1)); - $this->assertEqual(array(), OC_Group::usersInGroup($group2)); + $this->assertEquals(array($user1), OC_Group::usersInGroup($group1)); + $this->assertEquals(array(), OC_Group::usersInGroup($group2)); - $this->assertEqual(array($group1), OC_Group::getUserGroups($user1)); - $this->assertEqual(array(), OC_Group::getUserGroups($user2)); + $this->assertEquals(array($group1), OC_Group::getUserGroups($user1)); + $this->assertEquals(array(), OC_Group::getUserGroups($user2)); OC_Group::deleteGroup($group1); - $this->assertEqual(array(), OC_Group::getUserGroups($user1)); - $this->assertEqual(array(), OC_Group::usersInGroup($group1)); + $this->assertEquals(array(), OC_Group::getUserGroups($user1)); + $this->assertEquals(array(), OC_Group::usersInGroup($group1)); $this->assertFalse(OC_Group::inGroup($user1, $group1)); } @@ -69,7 +69,7 @@ class Test_Group extends UnitTestCase { OC_Group::useBackend(new OC_Group_Dummy()); $emptyGroup = null; - $this->assertEqual(false, OC_Group::createGroup($emptyGroup)); + $this->assertEquals(false, OC_Group::createGroup($emptyGroup)); } @@ -80,8 +80,8 @@ class Test_Group extends UnitTestCase { $groupCopy = $group; - $this->assertEqual(false, OC_Group::createGroup($groupCopy)); - $this->assertEqual(array($group), OC_Group::getGroups()); + $this->assertEquals(false, OC_Group::createGroup($groupCopy)); + $this->assertEquals(array($group), OC_Group::getGroups()); } @@ -90,8 +90,8 @@ class Test_Group extends UnitTestCase { $adminGroup = 'admin'; OC_Group::createGroup($adminGroup); - $this->assertEqual(false, OC_Group::deleteGroup($adminGroup)); - $this->assertEqual(array($adminGroup), OC_Group::getGroups()); + $this->assertEquals(false, OC_Group::deleteGroup($adminGroup)); + $this->assertEquals(array($adminGroup), OC_Group::getGroups()); } @@ -100,8 +100,8 @@ class Test_Group extends UnitTestCase { $groupNonExistent = 'notExistent'; $user = uniqid(); - $this->assertEqual(false, OC_Group::addToGroup($user, $groupNonExistent)); - $this->assertEqual(array(), OC_Group::getGroups()); + $this->assertEquals(false, OC_Group::addToGroup($user, $groupNonExistent)); + $this->assertEquals(array(), OC_Group::getGroups()); } @@ -122,7 +122,7 @@ class Test_Group extends UnitTestCase { OC_Group::addToGroup($user3, $group1); OC_Group::addToGroup($user3, $group2); - $this->assertEqual(array($user1, $user2, $user3), + $this->assertEquals(array($user1, $user2, $user3), OC_Group::usersInGroups(array($group1, $group2, $group3))); // FIXME: needs more parameter variation @@ -141,16 +141,16 @@ class Test_Group extends UnitTestCase { OC_Group::createGroup($group1); //groups should be added to the first registered backend - $this->assertEqual(array($group1), $backend1->getGroups()); - $this->assertEqual(array(), $backend2->getGroups()); + $this->assertEquals(array($group1), $backend1->getGroups()); + $this->assertEquals(array(), $backend2->getGroups()); - $this->assertEqual(array($group1), OC_Group::getGroups()); + $this->assertEquals(array($group1), OC_Group::getGroups()); $this->assertTrue(OC_Group::groupExists($group1)); $this->assertFalse(OC_Group::groupExists($group2)); $backend1->createGroup($group2); - $this->assertEqual(array($group1, $group2), OC_Group::getGroups()); + $this->assertEquals(array($group1, $group2), OC_Group::getGroups()); $this->assertTrue(OC_Group::groupExists($group1)); $this->assertTrue(OC_Group::groupExists($group2)); @@ -161,22 +161,22 @@ class Test_Group extends UnitTestCase { $this->assertFalse(OC_Group::inGroup($user2, $group1)); - $this->assertTrue(OC_Group::addToGroup($user1, $group1)); + $this->assertTrue((bool)OC_Group::addToGroup($user1, $group1)); $this->assertTrue(OC_Group::inGroup($user1, $group1)); $this->assertFalse(OC_Group::inGroup($user2, $group1)); $this->assertFalse($backend2->inGroup($user1, $group1)); - $this->assertFalse(OC_Group::addToGroup($user1, $group1)); + $this->assertFalse((bool)OC_Group::addToGroup($user1, $group1)); - $this->assertEqual(array($user1), OC_Group::usersInGroup($group1)); + $this->assertEquals(array($user1), OC_Group::usersInGroup($group1)); - $this->assertEqual(array($group1), OC_Group::getUserGroups($user1)); - $this->assertEqual(array(), OC_Group::getUserGroups($user2)); + $this->assertEquals(array($group1), OC_Group::getUserGroups($user1)); + $this->assertEquals(array(), OC_Group::getUserGroups($user2)); OC_Group::deleteGroup($group1); - $this->assertEqual(array(), OC_Group::getUserGroups($user1)); - $this->assertEqual(array(), OC_Group::usersInGroup($group1)); + $this->assertEquals(array(), OC_Group::getUserGroups($user1)); + $this->assertEquals(array(), OC_Group::usersInGroup($group1)); $this->assertFalse(OC_Group::inGroup($user1, $group1)); } } diff --git a/tests/lib/group/backend.php b/tests/lib/group/backend.php index f61abed5f29..d308232a78b 100644 --- a/tests/lib/group/backend.php +++ b/tests/lib/group/backend.php @@ -20,7 +20,7 @@ * */ -abstract class Test_Group_Backend extends UnitTestCase { +abstract class Test_Group_Backend extends PHPUnit_Framework_TestCase { /** * @var OC_Group_Backend $backend */ @@ -52,18 +52,18 @@ abstract class Test_Group_Backend extends UnitTestCase { $name2=$this->getGroupName(); $this->backend->createGroup($name1); $count=count($this->backend->getGroups())-$startCount; - $this->assertEqual(1, $count); + $this->assertEquals(1, $count); $this->assertTrue((array_search($name1, $this->backend->getGroups())!==false)); $this->assertFalse((array_search($name2, $this->backend->getGroups())!==false)); $this->backend->createGroup($name2); $count=count($this->backend->getGroups())-$startCount; - $this->assertEqual(2, $count); + $this->assertEquals(2, $count); $this->assertTrue((array_search($name1, $this->backend->getGroups())!==false)); $this->assertTrue((array_search($name2, $this->backend->getGroups())!==false)); $this->backend->deleteGroup($name2); $count=count($this->backend->getGroups())-$startCount; - $this->assertEqual(1, $count); + $this->assertEquals(1, $count); $this->assertTrue((array_search($name1, $this->backend->getGroups())!==false)); $this->assertFalse((array_search($name2, $this->backend->getGroups())!==false)); } @@ -91,15 +91,15 @@ abstract class Test_Group_Backend extends UnitTestCase { $this->assertFalse($this->backend->addToGroup($user1, $group1)); - $this->assertEqual(array($user1), $this->backend->usersInGroup($group1)); - $this->assertEqual(array(), $this->backend->usersInGroup($group2)); + $this->assertEquals(array($user1), $this->backend->usersInGroup($group1)); + $this->assertEquals(array(), $this->backend->usersInGroup($group2)); - $this->assertEqual(array($group1), $this->backend->getUserGroups($user1)); - $this->assertEqual(array(), $this->backend->getUserGroups($user2)); + $this->assertEquals(array($group1), $this->backend->getUserGroups($user1)); + $this->assertEquals(array(), $this->backend->getUserGroups($user2)); $this->backend->deleteGroup($group1); - $this->assertEqual(array(), $this->backend->getUserGroups($user1)); - $this->assertEqual(array(), $this->backend->usersInGroup($group1)); + $this->assertEquals(array(), $this->backend->getUserGroups($user1)); + $this->assertEquals(array(), $this->backend->usersInGroup($group1)); $this->assertFalse($this->backend->inGroup($user1, $group1)); } } diff --git a/tests/lib/helper.php b/tests/lib/helper.php index cfb9a799579..336e8f8b3c5 100644 --- a/tests/lib/helper.php +++ b/tests/lib/helper.php @@ -6,7 +6,7 @@ * See the COPYING-README file. */ -class Test_Helper extends UnitTestCase { +class Test_Helper extends PHPUnit_Framework_TestCase { function testHumanFileSize() { $result = OC_Helper::humanFileSize(0); diff --git a/tests/lib/share/share.php b/tests/lib/share/share.php index 92f5d065cf2..ab43e47726b 100644 --- a/tests/lib/share/share.php +++ b/tests/lib/share/share.php @@ -19,7 +19,7 @@ * License along with this library. If not, see . */ -class Test_Share extends UnitTestCase { +class Test_Share extends PHPUnit_Framework_TestCase { protected $itemType; protected $userBackend; diff --git a/tests/lib/streamwrappers.php b/tests/lib/streamwrappers.php index 89b2785fca6..aebbc93b902 100644 --- a/tests/lib/streamwrappers.php +++ b/tests/lib/streamwrappers.php @@ -20,7 +20,7 @@ * */ -class Test_StreamWrappers extends UnitTestCase { +class Test_StreamWrappers extends PHPUnit_Framework_TestCase { public function testFakeDir() { $items=array('foo', 'bar'); OC_FakeDirStream::$dirs['test']=$items; @@ -30,7 +30,7 @@ class Test_StreamWrappers extends UnitTestCase { $result[]=$file; $this->assertContains($file, $items); } - $this->assertEqual(count($items), count($result)); + $this->assertEquals(count($items), count($result)); } public function testStaticStream() { @@ -39,7 +39,7 @@ class Test_StreamWrappers extends UnitTestCase { $this->assertFalse(file_exists($staticFile)); file_put_contents($staticFile, file_get_contents($sourceFile)); $this->assertTrue(file_exists($staticFile)); - $this->assertEqual(file_get_contents($sourceFile), file_get_contents($staticFile)); + $this->assertEquals(file_get_contents($sourceFile), file_get_contents($staticFile)); unlink($staticFile); clearstatcache(); $this->assertFalse(file_exists($staticFile)); @@ -52,7 +52,7 @@ class Test_StreamWrappers extends UnitTestCase { $file='close://'.$tmpFile; $this->assertTrue(file_exists($file)); file_put_contents($file, file_get_contents($sourceFile)); - $this->assertEqual(file_get_contents($sourceFile), file_get_contents($file)); + $this->assertEquals(file_get_contents($sourceFile), file_get_contents($file)); unlink($file); clearstatcache(); $this->assertFalse(file_exists($file)); @@ -68,7 +68,7 @@ class Test_StreamWrappers extends UnitTestCase { $this->fail('Expected exception'); }catch(Exception $e) { $path=$e->getMessage(); - $this->assertEqual($path, $tmpFile); + $this->assertEquals($path, $tmpFile); } } diff --git a/tests/lib/template.php b/tests/lib/template.php index 2899c3512b2..6e88d4c07fc 100644 --- a/tests/lib/template.php +++ b/tests/lib/template.php @@ -22,7 +22,7 @@ OC::autoload('OC_Template'); -class Test_TemplateFunctions extends UnitTestCase { +class Test_TemplateFunctions extends PHPUnit_Framework_TestCase { public function testP() { // FIXME: do we need more testcases? @@ -31,7 +31,7 @@ class Test_TemplateFunctions extends UnitTestCase { p($htmlString); $result = ob_get_clean(); - $this->assertEqual("<script>alert('xss');</script>", $result); + $this->assertEquals("<script>alert('xss');</script>", $result); } public function testPNormalString() { @@ -40,7 +40,7 @@ class Test_TemplateFunctions extends UnitTestCase { p($normalString); $result = ob_get_clean(); - $this->assertEqual("This is a good string!", $result); + $this->assertEquals("This is a good string!", $result); } @@ -51,7 +51,7 @@ class Test_TemplateFunctions extends UnitTestCase { print_unescaped($htmlString); $result = ob_get_clean(); - $this->assertEqual($htmlString, $result); + $this->assertEquals($htmlString, $result); } public function testPrintUnescapedNormalString() { @@ -60,7 +60,7 @@ class Test_TemplateFunctions extends UnitTestCase { print_unescaped($normalString); $result = ob_get_clean(); - $this->assertEqual("This is a good string!", $result); + $this->assertEquals("This is a good string!", $result); } diff --git a/tests/lib/user/backend.php b/tests/lib/user/backend.php index 0b744770ea2..40674424c96 100644 --- a/tests/lib/user/backend.php +++ b/tests/lib/user/backend.php @@ -30,7 +30,7 @@ * For an example see /tests/lib/user/dummy.php */ -abstract class Test_User_Backend extends UnitTestCase { +abstract class Test_User_Backend extends PHPUnit_Framework_TestCase { /** * @var OC_User_Backend $backend */ @@ -53,18 +53,18 @@ abstract class Test_User_Backend extends UnitTestCase { $name2=$this->getUser(); $this->backend->createUser($name1, ''); $count=count($this->backend->getUsers())-$startCount; - $this->assertEqual(1, $count); + $this->assertEquals(1, $count); $this->assertTrue((array_search($name1, $this->backend->getUsers())!==false)); $this->assertFalse((array_search($name2, $this->backend->getUsers())!==false)); $this->backend->createUser($name2, ''); $count=count($this->backend->getUsers())-$startCount; - $this->assertEqual(2, $count); + $this->assertEquals(2, $count); $this->assertTrue((array_search($name1, $this->backend->getUsers())!==false)); $this->assertTrue((array_search($name2, $this->backend->getUsers())!==false)); $this->backend->deleteUser($name2); $count=count($this->backend->getUsers())-$startCount; - $this->assertEqual(1, $count); + $this->assertEquals(1, $count); $this->assertTrue((array_search($name1, $this->backend->getUsers())!==false)); $this->assertFalse((array_search($name2, $this->backend->getUsers())!==false)); } diff --git a/tests/lib/util.php b/tests/lib/util.php index 27635cb8055..ebff3c7381a 100644 --- a/tests/lib/util.php +++ b/tests/lib/util.php @@ -6,7 +6,7 @@ * See the COPYING-README file. */ -class Test_Util extends UnitTestCase { +class Test_Util extends PHPUnit_Framework_TestCase { // Constructor function Test_Util() { diff --git a/tests/lib/vcategories.php b/tests/lib/vcategories.php index 63516a063da..e79dd49870c 100644 --- a/tests/lib/vcategories.php +++ b/tests/lib/vcategories.php @@ -22,7 +22,7 @@ //require_once("../lib/template.php"); -class Test_VCategories extends UnitTestCase { +class Test_VCategories extends PHPUnit_Framework_TestCase { protected $objectType; protected $user; @@ -49,7 +49,7 @@ class Test_VCategories extends UnitTestCase { $catmgr = new OC_VCategories($this->objectType, $this->user, $defcategories); - $this->assertEqual(4, count($catmgr->categories())); + $this->assertEquals(4, count($catmgr->categories())); } public function testAddCategories() { @@ -59,25 +59,25 @@ class Test_VCategories extends UnitTestCase { foreach($categories as $category) { $result = $catmgr->add($category); - $this->assertTrue($result); + $this->assertTrue((bool)$result); } $this->assertFalse($catmgr->add('Family')); $this->assertFalse($catmgr->add('fAMILY')); - $this->assertEqual(4, count($catmgr->categories())); + $this->assertEquals(4, count($catmgr->categories())); } public function testdeleteCategories() { $defcategories = array('Friends', 'Family', 'Work', 'Other'); $catmgr = new OC_VCategories($this->objectType, $this->user, $defcategories); - $this->assertEqual(4, count($catmgr->categories())); + $this->assertEquals(4, count($catmgr->categories())); $catmgr->delete('family'); - $this->assertEqual(3, count($catmgr->categories())); + $this->assertEquals(3, count($catmgr->categories())); $catmgr->delete(array('Friends', 'Work', 'Other')); - $this->assertEqual(0, count($catmgr->categories())); + $this->assertEquals(0, count($catmgr->categories())); } @@ -90,8 +90,8 @@ class Test_VCategories extends UnitTestCase { $catmgr->addToCategory($id, 'Family'); } - $this->assertEqual(1, count($catmgr->categories())); - $this->assertEqual(9, count($catmgr->idsForCategory('Family'))); + $this->assertEquals(1, count($catmgr->categories())); + $this->assertEquals(9, count($catmgr->idsForCategory('Family'))); } /** @@ -110,8 +110,8 @@ class Test_VCategories extends UnitTestCase { $this->assertFalse(in_array($id, $catmgr->idsForCategory('Family'))); } - $this->assertEqual(1, count($catmgr->categories())); - $this->assertEqual(0, count($catmgr->idsForCategory('Family'))); + $this->assertEquals(1, count($catmgr->categories())); + $this->assertEquals(0, count($catmgr->idsForCategory('Family'))); } } -- cgit v1.2.3