This test covers the behaviour of pattern use and construction On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". PASS context.createPattern(green1x1, null) did not throw an exception PASS getPixel(1,1) is [0,128,0,255] PASS getPixel(98,1) is [0,128,0,255] PASS getPixel(1,48) is [0,128,0,255] PASS getPixel(98,48) is [0,128,0,255] PASS context.createPattern(green1x1, 'null') threw exception SyntaxError: The string did not match the expected pattern.. PASS context.createPattern(green1x1, undefined) threw exception SyntaxError: The string did not match the expected pattern.. PASS context.createPattern(green1x1, 'undefined') threw exception SyntaxError: The string did not match the expected pattern.. PASS context.createPattern(green1x1, {toString:function(){ return null;}}) threw exception SyntaxError: The string did not match the expected pattern.. PASS context.createPattern(green1x1, '') did not throw an exception PASS getPixel(1,1) is [0,128,0,255] PASS getPixel(98,1) is [0,128,0,255] PASS getPixel(1,48) is [0,128,0,255] PASS getPixel(98,48) is [0,128,0,255] PASS context.createPattern(green1x1, {toString:function(){ return 'repeat';}}) did not throw an exception PASS getPixel(1,1) is [0,128,0,255] PASS getPixel(98,1) is [0,128,0,255] PASS getPixel(1,48) is [0,128,0,255] PASS getPixel(98,48) is [0,128,0,255] PASS getPixel(1,1) is [0,128,0,255] PASS getPixel(98,1) is [0,128,0,255] PASS getPixel(1,48) is [0,128,0,255] PASS getPixel(98,48) is [0,128,0,255] PASS successfullyParsed is true TEST COMPLETE