1*ed3bd27bSEvan Baconimport rnFixture from '../../plugins/__tests__/fixtures/react-native-project'; 2*ed3bd27bSEvan Baconimport * as XML from '../../utils/XML'; 3*ed3bd27bSEvan Baconimport { AndroidManifest, getMainActivity } from '../Manifest'; 4082815dcSEvan Baconimport { getOrientation, setAndroidOrientation } from '../Orientation'; 5082815dcSEvan Bacon 6*ed3bd27bSEvan Baconasync function getFixtureManifestAsync() { 7*ed3bd27bSEvan Bacon return (await XML.parseXMLAsync( 8*ed3bd27bSEvan Bacon rnFixture['android/app/src/main/AndroidManifest.xml'] 9*ed3bd27bSEvan Bacon )) as AndroidManifest; 10*ed3bd27bSEvan Bacon} 11082815dcSEvan Bacon 12082815dcSEvan Bacondescribe('Android orientation', () => { 13082815dcSEvan Bacon it(`returns null if no orientation is provided`, () => { 14082815dcSEvan Bacon expect(getOrientation({})).toBe(null); 15082815dcSEvan Bacon }); 16082815dcSEvan Bacon 17082815dcSEvan Bacon it(`returns orientation if provided`, () => { 18082815dcSEvan Bacon expect(getOrientation({ orientation: 'landscape' })).toMatch('landscape'); 19082815dcSEvan Bacon }); 20082815dcSEvan Bacon 21082815dcSEvan Bacon describe('File changes', () => { 22082815dcSEvan Bacon let androidManifestJson; 23082815dcSEvan Bacon it('adds orientation attribute if not present', async () => { 24*ed3bd27bSEvan Bacon androidManifestJson = await getFixtureManifestAsync(); 25082815dcSEvan Bacon androidManifestJson = await setAndroidOrientation( 26082815dcSEvan Bacon { orientation: 'landscape' }, 27082815dcSEvan Bacon androidManifestJson 28082815dcSEvan Bacon ); 29082815dcSEvan Bacon 30082815dcSEvan Bacon const mainActivity = getMainActivity(androidManifestJson); 31082815dcSEvan Bacon 32*ed3bd27bSEvan Bacon expect(mainActivity!.$['android:screenOrientation']).toMatch('landscape'); 33082815dcSEvan Bacon }); 34082815dcSEvan Bacon 35082815dcSEvan Bacon it('replaces orientation attribute if present', async () => { 36*ed3bd27bSEvan Bacon androidManifestJson = await getFixtureManifestAsync(); 37082815dcSEvan Bacon 38082815dcSEvan Bacon androidManifestJson = await setAndroidOrientation( 39082815dcSEvan Bacon { orientation: 'portrait' }, 40082815dcSEvan Bacon androidManifestJson 41082815dcSEvan Bacon ); 42082815dcSEvan Bacon 43082815dcSEvan Bacon const mainActivity = getMainActivity(androidManifestJson); 44082815dcSEvan Bacon 45*ed3bd27bSEvan Bacon expect(mainActivity!.$['android:screenOrientation']).toMatch('portrait'); 46082815dcSEvan Bacon }); 47082815dcSEvan Bacon 48082815dcSEvan Bacon it('replaces orientation with unspecified if provided default', async () => { 49*ed3bd27bSEvan Bacon androidManifestJson = await getFixtureManifestAsync(); 50082815dcSEvan Bacon androidManifestJson = await setAndroidOrientation( 51082815dcSEvan Bacon { orientation: 'default' }, 52082815dcSEvan Bacon androidManifestJson 53082815dcSEvan Bacon ); 54082815dcSEvan Bacon 55082815dcSEvan Bacon const mainActivity = getMainActivity(androidManifestJson); 56082815dcSEvan Bacon 57*ed3bd27bSEvan Bacon expect(mainActivity!.$['android:screenOrientation']).toMatch('unspecified'); 58082815dcSEvan Bacon }); 59082815dcSEvan Bacon }); 60082815dcSEvan Bacon}); 61