diff options
Diffstat (limited to 'chromium/third_party/skia/expectations/gm/loader.js')
-rw-r--r-- | chromium/third_party/skia/expectations/gm/loader.js | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/chromium/third_party/skia/expectations/gm/loader.js b/chromium/third_party/skia/expectations/gm/loader.js new file mode 100644 index 00000000000..c5d8a7c8c19 --- /dev/null +++ b/chromium/third_party/skia/expectations/gm/loader.js @@ -0,0 +1,52 @@ +/* + * GMExpectedResultsLoader: + * Reads an expected-results.json file, and imports its data into $scope. + */ +var GMExpectedResultsLoader = angular.module( + 'GMExpectedResultsLoader', + [], + function($httpProvider) { + /* Override transformResponse so that the numeric checksums are interpreted as + * strings instead, since Javascript cannot handle 64-bit integers. */ + $httpProvider.defaults.transformResponse = function(data, headersGetter) { + return JSON.parse(data.replace(/\s(\d+)\s/g, " \"$1\" ")); + } + } +); +GMExpectedResultsLoader.controller( + 'GMExpectedResultsLoader.Controller', + function($scope, $http) { + /* When the changePlatformPath function is called, download expected-results.json + * from the desired platform directory. + * + * When the JSON is received, predigest it and return it to the frontend as + * $scope.gmExpectedResults . + */ + $scope.changePlatformPath = function() { + $http.get($scope.platformPath + "/expected-results.json").success( + function(response) { + var jsonResults = []; + var imageNameRegex = /^(.+)_([^_]+).png/; + angular.forEach(response['expected-results'], function(imageExpectations, imageName) { + var matched = imageNameRegex.exec(imageName); + var allowedImages = []; + angular.forEach(imageExpectations['allowed-digests'], function(allowedDigest, key) { + var thisImage = { + hashType: allowedDigest[0], hashValue: allowedDigest[1] + }; + allowedImages.push(thisImage); + }); + var thisResult = { + test: matched[1], config: matched[2], + allowedImages: allowedImages, + bugs: imageExpectations['bugs'], + reviewedByHuman: imageExpectations['reviewed-by-human'] + }; + jsonResults.push(thisResult); + }); + $scope.gmExpectedResults = jsonResults; + } + ); + }; + } +); |