Skip to content

Instantly share code, notes, and snippets.

@Stormwind
Created January 5, 2012 12:54
Show Gist options
  • Save Stormwind/1565142 to your computer and use it in GitHub Desktop.
Save Stormwind/1565142 to your computer and use it in GitHub Desktop.
XP Framework: Bug when using the ResouceProvider class with large files
<?php
uses('lang.ResourceProvider', 'unittest.TestCase');
class ReadFilesViaResTest extends TestCase {
/**
* Running test, when using an normal path
*
*/
#[@test]
public function testNormalPath() {
$file= new File('src/testfile.txt');
$file->open();
$fileSize= $file->size();
$fileText= $file->read($fileSize);
$this->assertEquals($fileSize, strlen($fileText));
}
/**
* Failing test, when using an res path
*
*/
#[@test]
public function testResPath() {
$file= new File('res://testfile.txt');
$file->open();
$fileSize= $file->size();
$fileText= $file->read($fileSize);
$this->assertEquals($fileSize, strlen($fileText));
}
}
?>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam tortor dolor, laoreet ac consequat ac, suscipit nec nunc. Vestibulum porttitor venenatis placerat. Suspendisse a eros quis felis auctor dignissim. Proin ac velit ac nisi pretium ullamcorper. Suspendisse in turpis id quam sagittis viverra. Nullam id turpis id leo faucibus hendrerit ut non turpis. Aliquam condimentum ipsum id mi porta bibendum. In eget eros id urna sagittis molestie. Proin dapibus felis vel libero iaculis at congue risus tincidunt. Suspendisse potenti. Suspendisse varius elementum eros, et aliquam leo interdum non. Mauris erat mi, dignissim nec faucibus et, mollis ut ligula. In at est ut velit volutpat sodales at sed justo. Aliquam tincidunt elementum justo, in bibendum metus tincidunt at. Cras pretium facilisis lectus. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Ut sed fringilla mi. Vestibulum condimentum tincidunt mi et condimentum. Donec et accumsan velit. Morbi sit amet dictum neque. Proin at orci gravida augue pulvinar cursus. Nunc tempus leo ac ligula dictum convallis. Mauris non felis ipsum. Donec ultricies pretium elementum. Curabitur tempor ligula quis eros auctor condimentum. Mauris vestibulum urna sed mi consequat gravida condimentum sem dictum. Ut vitae elit leo, ac eleifend elit. Morbi a tempus libero. Sed vel neque metus.
Sed in congue est. Aenean velit nibh, semper aliquet aliquam vel, laoreet eget nibh. Proin pretium, sem vitae pharetra dignissim, orci massa vestibulum sapien, a eleifend diam justo non est. Praesent sapien lectus, volutpat ut iaculis vitae, consequat sit amet arcu. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Cras et nibh sit amet erat molestie volutpat. Nam ut libero sed erat egestas imperdiet. Ut at lacus id eros dignissim pulvinar sed auctor urna. Suspendisse suscipit arcu a nulla gravida vel euismod neque euismod. Aliquam posuere mollis tristique. Aenean nec odio ut orci laoreet tempor ut sit amet turpis.
Nunc euismod ultricies tortor, quis vehicula urna euismod ac. Ut commodo felis consequat massa eleifend dictum. Nulla id vehicula dolor. Cras quis eros sed tortor sollicitudin suscipit at eu risus. Fusce libero felis, auctor a consectetur sit amet, pharetra eget risus. Morbi molestie viverra eros, eu auctor odio euismod ut. Curabitur id sem tortor, in suscipit leo. Suspendisse eu magna vitae urna luctus accumsan. Etiam condimentum erat sed nisi molestie ac posuere est feugiat. Vestibulum tristique lorem a massa condimentum non suscipit sem vehicula. Proin id urna ante. Integer vel velit vitae justo hendrerit rhoncus. Phasellus elementum, massa sed pulvinar mattis, velit lectus ullamcorper mauris, at dignissim lorem nibh vel lorem. Cras laoreet ligula sit amet urna cursus mollis porta enim interdum. Suspendisse metus mi, elementum non eleifend sit amet, suscipit in enim.
Vestibulum vel mollis metus. Nunc vestibulum imperdiet est, et semper dolor consequat non. Quisque rhoncus, felis et interdum laoreet, dolor metus porta mi, eu placerat ligula magna vel risus. Pellentesque vel magna felis. Etiam quis ipsum in mi feugiat consectetur eget sed nulla. Donec vehicula erat eu felis venenatis eget vulputate massa aliquet. Aenean lectus odio, imperdiet non auctor et, porttitor ac velit. Aliquam blandit enim id libero volutpat a bibendum ipsum vulputate. Pellentesque pulvinar risus ut sapien auctor ultrices.
Duis nisl ipsum, tincidunt eu rutrum ac, pretium at nisl. Vestibulum neque elit, varius dignissim imperdiet id, cursus in nulla. Maecenas eu venenatis libero. Nam feugiat molestie arcu. Pellentesque porta, lectus at sodales molestie, arcu tortor vulputate arcu, id lobortis risus justo quis ante. Sed faucibus vulputate nisl, sit amet adipiscing mi lacinia eget. Maecenas eu leo quam, et rutrum velit. In hac habitasse platea dictumst.
Curabitur sit amet eros sit amet lectus porttitor volutpat vulputate eu libero. Aenean adipiscing tellus id mauris pharetra eget sollicitudin mauris ullamcorper. Vestibulum vel nisl velit. Proin in elit lorem. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nunc sollicitudin semper erat quis condimentum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Integer est enim, volutpat quis auctor eu, vulputate ut nibh. Morbi eget elit in enim hendrerit euismod. Phasellus sapien tellus, consectetur in mattis et, bibendum vitae magna. In hac habitasse platea dictumst. Pellentesque vitae quam eu est elementum malesuada nec in elit. Maecenas non lorem nibh. Cras ac dui quis ipsum faucibus posuere. Aenean a lacus eu urna tristique tempus vel a leo. Nulla adipiscing pulvinar massa vitae ultrices.
Cras non scelerisque orci. Aenean fringilla ornare laoreet. Morbi sodales semper sapien, volutpat malesuada nulla bibendum ac. Praesent adipiscing viverra dolor, et rhoncus urna mattis et. In mauris tellus, eleifend in lobortis fringilla, ornare a leo. In sed lobortis erat. Suspendisse potenti. Maecenas euismod risus eu risus scelerisque gravida. Vivamus pulvinar tincidunt eros quis cursus.
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Phasellus blandit dui vitae turpis tempor adipiscing. Cras adipiscing orci auctor nulla malesuada id euismod est eleifend. Mauris adipiscing velit vitae erat venenatis consequat. Nulla suscipit, turpis egestas scelerisque aliquam, magna arcu accumsan velit, nec consequat neque arcu vitae ante. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Sed vel aliquet quam. Vivamus eleifend condimentum ante quis tempor. Fusce purus justo, vestibulum et elementum eget, dignissim sed diam.
Duis porttitor posuere tempus. Nunc blandit sapien at velit faucibus mattis. Praesent dignissim urna sit amet arcu interdum tincidunt. Phasellus semper sem nec nisl dapibus nec congue risus tempor. Cras eros tellus, vestibulum quis mattis vel, vulputate a lacus. Praesent feugiat tincidunt vehicula. Fusce tempor mattis vestibulum. Donec sodales rhoncus nisl eu semper. Aliquam non lectus felis, lobortis imperdiet est.
Sed vel convallis felis. Aenean a elit tempus augue interdum sodales a et turpis. Mauris dui massa, dapibus quis egestas ut, pulvinar vitae ipsum. Nam congue felis eu lacus suscipit condimentum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus viverra aliquam justo, sit amet ultrices ligula varius ac. Ut dapibus libero at justo cursus vel ornare diam tristique. In auctor ipsum sit amet odio tincidunt ultricies. In non ornare nisl.
Praesent ac arcu dui. Nulla nec ligula metus. Ut elementum dolor sit amet purus facilisis consequat. Proin tincidunt felis eget leo rutrum rhoncus. Nulla facilisi. Etiam rhoncus nibh vel diam egestas imperdiet. Sed leo augue, tincidunt ut adipiscing dignissim, mattis in nisl. Pellentesque lacus sapien, elementum sed luctus vel, placerat vitae mi. Donec vitae est at eros vestibulum posuere vulputate sit amet sapien. Nullam elementum tempor sem ac viverra. Quisque placerat ultricies urna, sit amet hendrerit massa pharetra sit amet. Ut dictum elit et dui condimentum interdum. Donec a justo nec diam venenatis aliquet.
Aenean vitae mi sed orci sodales interdum pharetra eget metus. Integer nulla libero, pulvinar sed facilisis nec, ultricies vehicula diam. Morbi hendrerit ultricies mauris sed tincidunt. Donec quis nunc in libero convallis rutrum ac id tortor. In commodo libero a risus malesuada eget luctus orci molestie. Maecenas vestibulum pellentesque turpis, sit amet consectetur quam volutpat in. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Aenean commodo pharetra mauris sit amet mollis. Morbi in lobortis nulla.
Nunc viverra orci vitae velit consectetur eget lacinia nibh auctor. Donec et est elit. Integer felis augue, pulvinar non tristique vitae, vehicula ac mauris. Nam facilisis consectetur arcu non iaculis. Mauris mattis felis sed massa adipiscing malesuada. Maecenas dignissim turpis ut quam interdum sagittis. Aenean a nibh tempor odio pharetra dapibus. Pellentesque nisi enim, rhoncus et pharetra ut, aliquet cursus justo. Nulla tincidunt nibh in ligula sodales consectetur. Sed id faucibus nisi. Duis dignissim, risus non ultricies euismod, est dolor ultricies libero, eget adipiscing lectus sem id purus. Suspendisse potenti. Mauris in massa augue, non egestas nisi.
Morbi enim mi, egestas vitae viverra non, ultrices vel lectus. Nunc a aliquet augue. Phasellus metus lorem, pulvinar eu sodales quis, malesuada vestibulum ipsum. Nulla iaculis, libero vitae malesuada ornare, dolor enim vehicula orci, vel pellentesque orci massa in dolor. Ut semper luctus lacus, vitae imperdiet ipsum rutrum nec. Maecenas id enim metus, ut elementum justo. Donec ut dui non ante tempor consectetur. Nullam porta aliquam justo nec molestie. Suspendisse potenti. Quisque urna arcu, consequat quis pharetra eu, ornare in ipsum. Nulla non suscipit risus. Etiam eu purus nisi. Nunc ullamcorper sollicitudin magna, a pulvinar dolor blandit rhoncus. Quisque volutpat dui quis urna porta ac commodo ipsum feugiat. Morbi vitae leo purus, non tempor risus. Duis adipiscing dignissim orci, ac rhoncus sem suscipit quis.
Cras malesuada feugiat sapien, id condimentum libero imperdiet dictum. Proin et nunc dui. Morbi id congue justo. Sed accumsan malesuada dictum. Aliquam eget fringilla est. Pellentesque consectetur, ligula in suscipit pretium, massa elit pulvinar lectus, vitae fermentum purus leo at libero. Aenean condimentum consectetur tellus. Curabitur sit amet arcu et dui ultrices ultrices. Cras feugiat egestas tincidunt.
Maecenas non erat tellus. Duis non justo in arcu blandit posuere in et justo. Donec condimentum suscipit lorem, ut malesuada sapien tincidunt id. Duis adipiscing massa eget ligula condimentum fermentum. Praesent volutpat dignissim ipsum. Aenean accumsan lacus eget ipsum ultricies id posuere.
@thekid
Copy link

thekid commented Jan 8, 2012

It works if you use the io.streams.Streams class:

<?php
  uses('lang.ResourceProvider', 'io.streams.Streams', 'io.File', 'unittest.TestCase');

  class ReadFilesViaResTest extends TestCase {

    protected function assertReadingOperation($filename) {
      $file= new File($filename);
      $fileSize= $file->size();
      $fileContents= Streams::readAll($file->getInputStream());
      $this->assertEquals($fileSize, strlen($fileContents));
    }

    #[@test]
    public function testNormalPath() {
      $this->assertReadingOperation('src/testfile.txt');
    }

    #[@test]
    public function testResPath() {
      $this->assertReadingOperation('res://testfile.txt');
    }
  }
?>
Timm Friebe@carla ~/devel/1565142 [master]
$ unittest ReadFilesViaResTest
[..]

OK: 2/2 run (0 skipped), 2 succeeded, 0 failed
Memory used: 3644.77 kB (4011.92 kB peak)
Time taken: 0.003 seconds

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment