Use common tests for root behavior

Extract the root related tests from both fs and fake. This removes code duplication, and it will be easy to test a new external implementation, by simply reusing those test cases.