mirror of
https://github.com/status-im/react-native.git
synced 2025-01-20 06:18:57 +00:00
cc86d12175
Summary: When we built packager asset system we were mostly concerned about images. However, this system can also be used to work with videos, animations and other binary resources. The code that sorts assets into Android resource folders currently just shoves all non-drawable resources under `drawable-mdpi`, which is not ideal. Talking to Android experts on the team, `raw` seems like a much better place for other resources. Reviewed By: jeanlauliac Differential Revision: D6026633 fbshipit-source-id: cc2199f60da411ea432972a02f52c459ff5c490a
74 lines
2.0 KiB
JavaScript
74 lines
2.0 KiB
JavaScript
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
'use strict';
|
|
|
|
jest
|
|
.dontMock('../getAssetDestPathAndroid')
|
|
.dontMock('../assetPathUtils');
|
|
|
|
const getAssetDestPathAndroid = require('../getAssetDestPathAndroid');
|
|
|
|
describe('getAssetDestPathAndroid', () => {
|
|
it('should use the right destination folder', () => {
|
|
const asset = {
|
|
name: 'icon',
|
|
type: 'png',
|
|
httpServerLocation: '/assets/test',
|
|
};
|
|
|
|
const expectDestPathForScaleToStartWith = (scale, path) => {
|
|
if (!getAssetDestPathAndroid(asset, scale).startsWith(path)) {
|
|
throw new Error(`asset for scale ${scale} should start with path '${path}'`);
|
|
}
|
|
};
|
|
|
|
expectDestPathForScaleToStartWith(1, 'drawable-mdpi');
|
|
expectDestPathForScaleToStartWith(1.5, 'drawable-hdpi');
|
|
expectDestPathForScaleToStartWith(2, 'drawable-xhdpi');
|
|
expectDestPathForScaleToStartWith(3, 'drawable-xxhdpi');
|
|
expectDestPathForScaleToStartWith(4, 'drawable-xxxhdpi');
|
|
});
|
|
|
|
it('should lowercase path', () => {
|
|
const asset = {
|
|
name: 'Icon',
|
|
type: 'png',
|
|
httpServerLocation: '/assets/App/Test',
|
|
};
|
|
|
|
expect(getAssetDestPathAndroid(asset, 1)).toBe(
|
|
'drawable-mdpi/app_test_icon.png'
|
|
);
|
|
});
|
|
|
|
it('should remove `assets/` prefix', () => {
|
|
const asset = {
|
|
name: 'icon',
|
|
type: 'png',
|
|
httpServerLocation: '/assets/RKJSModules/Apps/AndroidSample/Assets',
|
|
};
|
|
|
|
expect(
|
|
getAssetDestPathAndroid(asset, 1).startsWith('assets_')
|
|
).toBeFalsy();
|
|
});
|
|
|
|
it('should put non-drawable resources to `raw/`', () => {
|
|
const asset = {
|
|
name: 'video',
|
|
type: 'mp4',
|
|
httpServerLocation: '/assets/app/test',
|
|
};
|
|
|
|
expect(getAssetDestPathAndroid(asset, 1)).toBe(
|
|
'raw/app_test_video.mp4'
|
|
);
|
|
});
|
|
});
|