Add tests for canon module

Status: 312 passed and 25 failing tests