#
# Test:
# - Activities from libraries are merged in the main manifest.
# - Acts on activity / activity-alias / service / receiver / provider.
# - Elements are merged as-is with the first comment element preceding them.
# - Whitespace preceding the merged elements is transfered over too.
#
# Note:
# - New elements are always merged at the end of the application element.
# - It's an error if an element with the same @name attribute is defined
#   or merged more than once unless the definition is *exactly* the same,
#   the "same" being defined by the exact XML elements, whitespace excluded.
#
# This tests that an error is generated because the libraries define
# receivers which are already defined differently.
#

@fails

@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:label="@string/app_name"
        android:icon="@drawable/app_icon"
        android:backupAgent="com.example.app.BackupAgentClass"
        android:restoreAnyVersion="true"
        android:allowBackup="true"
        android:killAfterRestore="true"
        android:name="com.example.TheApp" >

        <receiver
            android:name="com.example.AppReceiver1"
            android:icon="@drawable/app_icon">
            <intent-filter>
                <action android:name="com.example.action.ACTION_CUSTOM" />
            </intent-filter>
        </receiver>

        <receiver
            android:name="com.example.AppReceiver2"
            android:icon="@drawable/app_icon">
            <intent-filter>
                <action android:name="com.example.action.ACTION_CUSTOM" />
            </intent-filter>
        </receiver>

    </application>

</manifest>

@lib1

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

    <application android:label="@string/lib_name1" >

        <!-- Same as 1 in main -->
        <receiver
            android:name="com.example.AppReceiver1"
            android:icon="@drawable/app_icon">
            <intent-filter>
                <action android:name="com.example.action.ACTION_CUSTOM" />
            </intent-filter>
        </receiver>

        <!-- Differs from 2 in main -->
        <receiver
            android:name="com.example.AppReceiver2" />

        <!-- A new one defined by lib1 -->
        <receiver
            android:name="com.example.AppReceiver3"
            android:icon="@drawable/app_icon">
            <intent-filter>
                <action android:name="com.example.action.ACTION_CUSTOM1" />
                <action android:name="com.example.action.ACTION_CUSTOM2" />
                <action android:name="com.example.action.ACTION_CUSTOM3" />
            </intent-filter>
        </receiver>

    </application>

</manifest>

@lib2

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

    <application android:label="@string/lib_name2" >

        <!-- Conflicts with 3 from lib1 -->
        <receiver
            android:name="com.example.AppReceiver3"
            android:icon="@drawable/app_icon">
            <intent-filter>
                <action android:name="com.example.action.ACTION_CUSTOM" />
            </intent-filter>
        </receiver>
    </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:label="@string/app_name"
        android:icon="@drawable/app_icon"
        android:backupAgent="com.example.app.BackupAgentClass"
        android:restoreAnyVersion="true"
        android:allowBackup="true"
        android:killAfterRestore="true"
        android:name="com.example.TheApp" >

        <receiver
            android:name="com.example.AppReceiver1"
            android:icon="@drawable/app_icon">
            <intent-filter>
                <action android:name="com.example.action.ACTION_CUSTOM" />
            </intent-filter>
        </receiver>

        <receiver
            android:name="com.example.AppReceiver2"
            android:icon="@drawable/app_icon">
            <intent-filter>
                <action android:name="com.example.action.ACTION_CUSTOM" />
            </intent-filter>
        </receiver>

        <!-- A new one defined by lib1 -->
        <receiver
            android:name="com.example.AppReceiver3"
            android:icon="@drawable/app_icon">
            <intent-filter>
                <action android:name="com.example.action.ACTION_CUSTOM1" />
                <action android:name="com.example.action.ACTION_CUSTOM2" />
                <action android:name="com.example.action.ACTION_CUSTOM3" />
            </intent-filter>
        </receiver>

    </application>

</manifest>

@errors

P [ManifestMergerTest0_main.xml:6, ManifestMergerTest1_lib1.xml:6] Skipping identical /manifest/application/receiver[@name=com.example.AppReceiver1] element.
E [ManifestMergerTest0_main.xml:12, ManifestMergerTest1_lib1.xml:13] Trying to merge incompatible /manifest/application/receiver[@name=com.example.AppReceiver2] element:
  <receiver android:name=com.example.AppReceiver2>
++    @android:icon = @drawable/app_icon
      @android:name = com.example.AppReceiver2
E [ManifestMergerTest0_main.xml, ManifestMergerTest2_lib2.xml:6] Trying to merge incompatible /manifest/application/receiver[@name=com.example.AppReceiver3] element:
  <receiver android:name=com.example.AppReceiver3>
    <intent-filter>
      <action android:name=com.example.action.ACTION_CUSTOM>
--        @android:name = com.example.action.ACTION_CUSTOM
++        @android:name = com.example.action.ACTION_CUSTOM1
