Make WordPress Core

Changes between Version 1 and Version 2 of Ticket #26829, comment 3

01/15/2014 11:18:04 PM (8 years ago)


  • Ticket #26829, comment 3

    v1 v2  
    11Hi Nacin,
    23I actually need some input on the best way to handle testing `extract_from_markers()` and `insert_with_markers()`. Since the code uses the functions `file()`, `fopen()`, etc., we would need to create files just for the unit tests, create temporary files programmatically within the tests, or rewrite the functions to use an object that we could mock.
    35I see that there's a directory for files required for certain unit tests, but I'm not sure where to put test htaccess files. Also, are the files in the /phpunit/data/ directory only to be used for read operations? If that's the case, I start to lean towards wanting to create a temp file with `tempname()`, but there is a possibility that `tempname()` won't work on some computers.
    47Is there a way we can replace the php filesystem calls with an object that can be mocked? I just found the `WP_Filesystem_Direct` class which has the function `get_contents_array()` which is just an abstraction for `file()`. The calls to `fopen`, `fwrite`, and `fclose` in the `insert_with_markers()` function could be removed by first making changes into a new array, imploding that array, and passing the resulting string into the `put_contents()` function.
    59So what route do you believe would be the best for WordPress and the Test Suite as a whole? I'm a fan of refactoring the functions to allow for mocks, but you know much more about this whole project than me and I'm willing to go a different route.