Fix broken file.contents on subsequent cached runs

- Update default value implementation to check for _contents
- Add some new tests that test the contents