add testcase & bug fixed