UNPKG

bananalyzer

Version:

A simple tool for windows 10, that downloads APKs from Google playstore, analyzes them, and lists all the Google and Huawei SDKs (kits) that are integrated, along with other metadata

105 lines (104 loc) 5.49 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __generator = (this && this.__generator) || function (thisArg, body) { var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { if (f) throw new TypeError("Generator is already executing."); while (g && (g = 0, op[0] && (_ = 0)), _) try { if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; if (y = 0, t) op = [op[0] & 2, t.value]; switch (op[0]) { case 0: case 1: t = op; break; case 4: _.label++; return { value: op[1], done: false }; case 5: _.label++; y = op[1]; op = [0]; continue; case 7: op = _.ops.pop(); _.trys.pop(); continue; default: if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } if (t[2]) _.ops.pop(); _.trys.pop(); continue; } op = body.call(thisArg, _); } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; } }; Object.defineProperty(exports, "__esModule", { value: true }); var downloader_1 = require("../src/core/downloader"); var packageName = 'com.facebook.lite'; var wrongPackageName = 'com.blahblah.does.not.exist.x234asdfc'; describe('Downloader', function () { it('should get download link ', function () { return __awaiter(void 0, void 0, void 0, function () { var result; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, downloader_1.getDownloadLink)(packageName, true, true)]; case 1: result = _a.sent(); expect(result).toBeTruthy(); expect(result.packageName).toEqual(packageName); expect(result.downloadLink).toBeTruthy(); return [2 /*return*/]; } }); }); }, 60000); it('should throw error for wrong package name', function () { return __awaiter(void 0, void 0, void 0, function () { var result, e_1; return __generator(this, function (_a) { switch (_a.label) { case 0: _a.trys.push([0, 2, , 3]); return [4 /*yield*/, (0, downloader_1.getDownloadLink)(wrongPackageName, true, true)]; case 1: result = _a.sent(); expect(result).toBeFalsy(); return [3 /*break*/, 3]; case 2: e_1 = _a.sent(); expect(e_1).toBeTruthy(); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; } }); }); }, 60000); it('should download apk', function () { return __awaiter(void 0, void 0, void 0, function () { var result; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, downloader_1.downloadAPK)(packageName, false, false, true)]; case 1: result = _a.sent(); console.dir(result); expect(result.packageName).toEqual(packageName); expect(result.filePath).toBeTruthy(); return [2 /*return*/]; } }); }); }, 60000); it('should use existing apk', function () { return __awaiter(void 0, void 0, void 0, function () { var result; return __generator(this, function (_a) { switch (_a.label) { case 0: return [4 /*yield*/, (0, downloader_1.downloadAPK)(packageName, true, true, true)]; case 1: result = _a.sent(); console.dir(result); expect(result.packageName).toEqual(packageName); expect(result.filePath).toBeTruthy(); return [2 /*return*/]; } }); }); }, 2000); });