Skip to content

Commit

Permalink
fix(image-source): Fix test for base64 image source for android API 26 (
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Vakrilov committed Aug 24, 2017
1 parent b6d5510 commit 1171da2
Showing 1 changed file with 44 additions and 62 deletions.
106 changes: 44 additions & 62 deletions tests/app/image-source/image-source-tests.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// >> imagesource-require
// var imageSource = require("image-source");
// const imageSource = require("image-source");
// << imagesource-require

// >> imagesource-require-alt
// var fs = require("file-system");
// const fs = require("file-system");
// << imagesource-require-alt

import * as imageSource from "tns-core-modules/image-source";
Expand All @@ -12,37 +12,36 @@ import * as app from "tns-core-modules/application";
import * as TKUnit from "../TKUnit";
import * as platform from "tns-core-modules/platform";

var imagePath = "~/logo.png";
var smallImagePath = "~/small-image.png";
const imagePath = "~/logo.png";
const smallImagePath = "~/small-image.png";

export function testFromResource() {
// >> imagesource-resname
var img = imageSource.fromResource("icon");
const img = imageSource.fromResource("icon");
// << imagesource-resname
TKUnit.assert(img.height > 0, "image.fromResource failed");
}

export function testFromUrl(done) {
//var completed;
var result: imageSource.ImageSource;
let result: imageSource.ImageSource;

// >> imagesource-load-url
imageSource.fromUrl("https://www.google.com/images/errors/logo_sm_2.png")
.then(function (res: imageSource.ImageSource) {
//console.log("Image successfully loaded");
// >> (hide)
//completed = true;
result = res;
try {
TKUnit.assertNotEqual(result, undefined, "Image not downloaded");
TKUnit.assert(result.height > 0, "Image not downloaded");
done(null);
}
catch (e) {
done(e);
}
// << (hide)
}, function (error) {
//console.log("Image successfully loaded");
// >> (hide)
//completed = true;
result = res;
try {
TKUnit.assertNotEqual(result, undefined, "Image not downloaded");
TKUnit.assert(result.height > 0, "Image not downloaded");
done(null);
}
catch (e) {
done(e);
}
// << (hide)
}, function (error) {
//console.log("Error loading image: " + error);
// >> (hide)
//completed = true;
Expand All @@ -54,72 +53,60 @@ export function testFromUrl(done) {

export function testSaveToFile() {
// >> imagesource-save-to
var img = imageSource.fromFile(imagePath);
var folder = fs.knownFolders.documents();
var path = fs.path.join(folder.path, "test.png");
var saved = img.saveToFile(path, "png");
const img = imageSource.fromFile(imagePath);
const folder = fs.knownFolders.documents();
const path = fs.path.join(folder.path, "test.png");
const saved = img.saveToFile(path, "png");
// << imagesource-save-to
TKUnit.assert(saved, "Image not saved to file");
TKUnit.assert(fs.File.exists(path), "Image not saved to file");
}

export function testFromFile() {
// >> imagesource-load-local
var folder = fs.knownFolders.documents();
var path = fs.path.join(folder.path, "test.png");
var img = imageSource.fromFile(path);
const folder = fs.knownFolders.documents();
const path = fs.path.join(folder.path, "test.png");
const img = imageSource.fromFile(path);
// << imagesource-load-local

TKUnit.assert(img.height > 0, "image.fromResource failed");

// remove the image from the file system
var file = folder.getFile("test.png");
const file = folder.getFile("test.png");
file.remove();
TKUnit.assert(!fs.File.exists(path), "test.png not removed");
}

export function testNativeFields() {
var img = imageSource.fromFile(imagePath);
const img = imageSource.fromFile(imagePath);
if (app.android) {
TKUnit.assert(img.android != null, "Image.android not updated.");
} else if (app.ios) {
TKUnit.assert(img.ios != null, "Image.ios not updated.");
}
}
const fullAndroidPng = "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAA3NCSVQICAjb4U/gAAAAFUlEQVQImWP8z4AAjAz/kTnIPGQAAG86AwGcuMlCAAAAAElFTkSuQmCC";
const fullIosPng = "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAAXNSR0IArs4c6QAAABxpRE9UAAAAAgAAAAAAAAACAAAAKAAAAAIAAAACAAAARiS4uJEAAAASSURBVBgZYvjPwABHSMz/DAAAAAD//0GWpK0AAAAOSURBVGNgYPiPhBgQAACEvQv1D5y/pAAAAABJRU5ErkJggg==";

var expectedAndroidPng = "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAA3NCSVQICAjb4U/gAAAAFUlEQVQImWP8z4AAjAz/kTnIPGQAAG86AwGcuMlCAAAAAElFTkSuQmCC";
var expectedIos7Png = "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAHGlET1QAAAACAAAAAAAAAAIAAAAoAAAAAgAAAAIAAABGJLi4kQAAABJJREFUCB1i+M/AAEdIzP8MAAAAAP//HD3fegAAAA5JREFUY2Bg+I+EGBAAAIS9C/UPnL+kAAAAAElFTkSuQmCC";
var expectedIos8Png = "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAAXNSR0IArs4c6QAAABxpRE9UAAAAAgAAAAAAAAACAAAAKAAAAAIAAAACAAAARiS4uJEAAAASSURBVBgZYvjPwABHSMz/DAAAAAD//0GWpK0AAAAOSURBVGNgYPiPhBgQAACEvQv1D5y/pAAAAABJRU5ErkJggg==";

var fullJpegImage = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAAEAAQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+Pz/h5j+1Z/z9fBr/AMRt+AH/AM7uiiiv9fV9E36KOn/HMX0f+n/NlvDT/p3/ANUv/V3vrf8AP1nueaf8LOa9P+ZjjP8Ap3/0/wD6u99b/wD/2Q==";
var expectedJpegStart = "/9j/4AAQSkZJRgAB";
const fullJpegImage = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAAEAAQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+Pz/h5j+1Z/z9fBr/AMRt+AH/AM7uiiiv9fV9E36KOn/HMX0f+n/NlvDT/p3/ANUv/V3vrf8AP1nueaf8LOa9P+ZjjP8Ap3/0/wD6u99b/wD/2Q==";
const expectedJpegStart = "/9j/4AAQSkZJRgAB";
const expectedPngStart = "iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAA";

export function testBase64Encode_PNG() {
var img = imageSource.fromFile(smallImagePath);

var expected: string;
if (app.android) {
expected = expectedAndroidPng;
} else if (app.ios) {
if (platform.device.osVersion[0] === '7') {
expected = expectedIos7Png;
}
else {
expected = expectedIos8Png;
}
}
const img = imageSource.fromFile(smallImagePath);
let result = img.toBase64String("png");

var result = img.toBase64String("png");
result = result.substr(0, expectedPngStart.length);
TKUnit.assertEqual(
result,
expected,
expectedPngStart,
"Base 64 encoded PNG");
}

export function testBase64Encode_JPEG() {
var img = imageSource.fromFile(smallImagePath);
const img = imageSource.fromFile(smallImagePath);

var result = img.toBase64String("jpeg");
let result = img.toBase64String("jpeg");
result = result.substr(0, expectedJpegStart.length);

TKUnit.assertEqual(
Expand All @@ -129,7 +116,7 @@ export function testBase64Encode_JPEG() {
}

export function testLoadFromBase64Encode_JPEG() {
var img: imageSource.ImageSource;
let img: imageSource.ImageSource;
img = imageSource.fromBase64(fullJpegImage);

TKUnit.assert(img !== null, "Actual: " + img);
Expand All @@ -138,16 +125,11 @@ export function testLoadFromBase64Encode_JPEG() {
}

export function testLoadFromBase64Encode_PNG() {
var img: imageSource.ImageSource;
let img: imageSource.ImageSource;
if (app.android) {
img = imageSource.fromBase64(expectedAndroidPng);
img = imageSource.fromBase64(fullAndroidPng);
} else if (app.ios) {
if (platform.device.osVersion[0] === '7') {
img = imageSource.fromBase64(expectedIos7Png);
}
else {
img = imageSource.fromBase64(expectedIos8Png);
}
img = imageSource.fromBase64(fullIosPng);
}

TKUnit.assert(img !== null, "Actual: " + img);
Expand Down

0 comments on commit 1171da2

Please sign in to comment.