ForeignField tests

Note that several of these tests do not pass - that is by design, as the functionality tested in those cases is not complete.