wiki.techinc.nl/tests/phpunit/mocks/filebackend/MockFSFile.php
Antoine Musso dfaf583d83 tests: mock parser tests file access
I eventually got tired of our parser tests creating and deleting fixture
files over and over.  This patch mock the files in memory and just
expose the file metadata which is all we need for parser tests.

The mocked classes are under /tests/phpunit/mocks/ and respect the
hierarchy of /includes/.

The wiki.png and headbg.jpg files are still copied on each test :/

Change-Id: Iccdff67222e66d48d01dd1596d09df2ea24b8c2a
2013-05-10 10:16:55 -07:00

69 lines
1.8 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* Mock of a filesystem file.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
* http://www.gnu.org/copyleft/gpl.html
*
* @file
* @ingroup FileBackend
*/
/**
* Class representing an in memory fake file.
* This is intended for unit testing / developement when you do not want
* to hit the filesystem.
*
* It reimplements abstract methods with some hardcoded values. Might
* not be suitable for all tests but is good enough for the parser tests.
*
* @ingroup FileBackend
*/
class MockFSFile extends FSFile {
private $sha1Base36 = null; // File Sha1Base36
public function exists() {
return true;
}
/**
* August 22 The theft of the Mona Lisa is discovered in the Louvre."
* @bug 20281
*/
public function getSize() {
return 1911;
}
public function getTimestamp() {
return wfTimestamp( TS_MW );
}
public function getMimeType() {
return 'text/mock';
}
public function getProps( $ext = true ) {
return array(
'fileExists' => $this->exists(),
'size' => $this->getSize(),
'file-mime' => $this->getMimeType(),
'sha1' => $this->getSha1Base36(),
);
}
public function getSha1Base36( $recache = false ) {
return '1234567890123456789012345678901';
}
}