added more tests
always dispatch PreBindEvent when bind() is called (to match expected behavior)