#
# Test how FQCN class names are expanded and handled:
# - A library application can be merged doesn't have an app class name.
# - A library application can be merged if it has the same class name as the app.
# - A partial class name is expanded using the package name in a library or app.
#
# All tests fail with just warnings, no solid errors.
#

@main

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app1"
    android:versionCode="100"
    android:versionName="1.0.0">

    <application
            android:name="TheApp"
            android:backupAgent=".MyBackupAgent" >
        <activity android:name=".MainActivity" />
        <receiver android:name="AppReceiver" />
        <activity android:name="com.example.lib2.LibActivity" />
    </application>
</manifest>


@lib1_widget

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lib1">

    <!-- App name is different, will not merge. -->
    <application android:name="TheApp" >
        <activity android:name=".WidgetLibrary1" />
    </application>
</manifest>


@lib2_widget

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lib2">

    <!-- App name is good, but backupAgent is mentioned and is different, will not merge. -->
    <application
            android:name="com.example.app1.TheApp"
            android:backupAgent=".MyBackupAgent" >
        <activity android:name=".WidgetLibrary2" />
        <activity android:name=".LibActivity" />
    </application>
</manifest>


@lib3_widget

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.lib3">

    <application android:name="com.example.app1.TheApp">
        <activity android:name=".WidgetLibrary3" />
    </application>

</manifest>


@lib4_not_package

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- It's an error for the manifest to lack a 'package' attribute. -->

    <application>
        <!-- These class name can't be expanded due to the lack of 'package' attribute. -->
        <activity android:name=".LibActivity4" />
        <service  android:name=".LibService4" />
        <receiver android:name=".LibReceiver4" />
        <provider android:name=".LibProvider4" />

    </application>

</manifest>


@result

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.app1"
    android:versionCode="100"
    android:versionName="1.0.0">

    <application
            android:name="com.example.app1.TheApp"
            android:backupAgent="com.example.app1.MyBackupAgent" >
        <activity android:name="com.example.app1.MainActivity" />
        <receiver android:name="com.example.app1.AppReceiver" />
        <activity android:name="com.example.lib2.LibActivity" />
        <activity android:name="com.example.lib1.WidgetLibrary1" />
        <activity android:name="com.example.lib2.WidgetLibrary2" />
        <activity android:name="com.example.lib3.WidgetLibrary3" />
# from @lib4_alias
        <!-- These class name can't be expanded due to the lack of 'package' attribute. -->
        <activity android:name=".LibActivity4" />
        <service  android:name=".LibService4" />
        <receiver android:name=".LibReceiver4" />
        <provider android:name=".LibProvider4" />
    </application>
</manifest>

@errors

W [ManifestMergerTest0_main.xml:3, ManifestMergerTest1_lib1_widget.xml:4] Main manifest has <application android:name='com.example.app1.TheApp'> but library uses name='com.example.lib1.TheApp'.
W [ManifestMergerTest0_main.xml:3, ManifestMergerTest2_lib2_widget.xml:4] Main manifest has <application android:backupAgent='com.example.app1.MyBackupAgent'> but library uses backupAgent='com.example.lib2.MyBackupAgent'.
P [ManifestMergerTest0_main.xml:6, ManifestMergerTest2_lib2_widget.xml:6] Skipping identical /manifest/application/activity[@name=com.example.lib2.LibActivity] element.
W [ManifestMergerTest4_lib4_not_package.xml:1] Missing 'package' attribute in manifest.
