53 lines
1.9 KiB
JavaScript
53 lines
1.9 KiB
JavaScript
|
/*
|
||
|
* 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;
|
||
|
}
|
||
|
);
|
||
|
};
|
||
|
}
|
||
|
);
|