add basic tests and tests contributed by appsfuel