| /* | |
| * 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; | |
| } | |
| ); | |
| }; | |
| } | |
| ); |