Source:
public void testMultipleIntentFilter_sameKey_noLibraryDeclaration ( ) throws java.io.IOException , javax.xml.parsers.ParserConfigurationException , org.xml.sax.SAXException { java.lang.String main = "" + ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( "<manifest\n" + " xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" ) + " package=\"com.example.lib3\">\n" ) + "\n" ) + " <application>\n" ) + " <activity android:name=\"activityOne\">\n" ) + " <intent-filter>\n" ) + " <action android:name=\"android.intent.action.VIEW\"/>\n" ) + " <category android:name=\"android.intent.category.DEFAULT\"/>\n" ) + " <category android:name=\"android.intent.category.BROWSABLE\"/>\n" ) + " <data android:scheme=\"myspecialdeeplinkscheme\"/>\n" ) + " <data android:host=\"home\"/>\n" ) + " </intent-filter>\n" ) + " <intent-filter>\n" ) + " <action android:name=\"android.intent.action.VIEW\"/>\n" ) + " <category android:name=\"android.intent.category.DEFAULT\"/>\n" ) + " <category android:name=\"android.intent.category.BROWSABLE\"/>\n" ) + " <data android:scheme=\"https\"/>\n" ) + " <data android:host=\"www.foo.com\"/>\n" ) + " </intent-filter>\n" ) + " </activity>\n" ) + " </application>" ) + "\n" ) + "</manifest>" ) ; java.lang.String library = "" + ( ( ( ( ( ( ( ( "<manifest\n" + " xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" ) + " xmlns:acme=\"http://acme.org/schemas\"\n" ) + " package=\"com.example.lib3\">\n" ) + "\n" ) + " <activity android:name=\"activityOne\" />\n" ) + " <uses-sdk android:targetSdkVersion=\"3\"/>\n" ) + "\n" ) + "</manifest>" ) ; com.android.manifmerger.XmlDocument mainDocument = com.android.manifmerger.TestUtils.xmlDocumentFromString ( new com.android.manifmerger.TestUtils.TestSourceLocation ( getClass ( ) , "main" ) , main ) ; com.android.manifmerger.XmlDocument libraryDocument = com.android.manifmerger.TestUtils.xmlDocumentFromString ( new com.android.manifmerger.TestUtils.TestSourceLocation ( getClass ( ) , "library" ) , library ) ; com.android.manifmerger.MergingReport.Builder mergingReportBuilder = new com.android.manifmerger.MergingReport.Builder ( mLogger ) ; com.google.common.base.Optional < com.android.manifmerger.XmlDocument > mergedDocument = mainDocument.merge ( libraryDocument , mergingReportBuilder ) ; assertTrue ( mergedDocument.isPresent ( ) ) ; com.android.manifmerger.XmlDocument xmlDocument = mergedDocument.get ( ) ; java.util.List < com.android.manifmerger.XmlElement > allIntentFilters = com.android.manifmerger.XmlDocumentTest.getAllElementsOfType ( xmlDocument , ManifestModel.NodeTypes.INTENT_FILTER ) ; assertEquals ( 2 , allIntentFilters.size ( ) ) ; assertEquals ( allIntentFilters.get ( 0 ) . getId ( ) , allIntentFilters.get ( 1 ) . getId ( ) ) ; }

Target:
public void testLibraryVersion3MergeInPreviewApp ( ) throws java.io.IOException , javax.xml.parsers.ParserConfigurationException , org.xml.sax.SAXException { java.lang.String main = "" + ( ( ( ( ( ( ( "<manifest\n" + " xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" ) + " package=\"com.example.lib3\">\n" ) + "\n" ) + " <application android:label=\"@string/lib_name\" />\n" ) + " <uses-sdk android:targetSdkVersion=\"XYZ\"/>\n" ) + "\n" ) + "</manifest>" ) ; java.lang.String library = "" + ( ( ( ( ( ( ( ( "<manifest\n" + " xmlns:android=\"http://schemas.android.com/apk/res/android\"\n" ) + " xmlns:acme=\"http://acme.org/schemas\"\n" ) + " package=\"com.example.lib3\">\n" ) + "\n" ) + " <activity android:name=\"activityOne\" />\n" ) + " <uses-sdk android:targetSdkVersion=\"3\"/>\n" ) + "\n" ) + "</manifest>" ) ; com.android.manifmerger.XmlDocument mainDocument = com.android.manifmerger.TestUtils.xmlDocumentFromString ( new com.android.manifmerger.TestUtils.TestSourceLocation ( getClass ( ) , "main" ) , main ) ; com.android.manifmerger.XmlDocument libraryDocument = com.android.manifmerger.TestUtils.xmlLibraryFromString ( new com.android.manifmerger.TestUtils.TestSourceLocation ( getClass ( ) , "library" ) , library ) ; com.android.manifmerger.MergingReport.Builder mergingReportBuilder = new com.android.manifmerger.MergingReport.Builder ( mLogger ) ; com.google.common.base.Optional < com.android.manifmerger.XmlDocument > mergedDocument = mainDocument.merge ( libraryDocument , mergingReportBuilder ) ; assertTrue ( mergedDocument.isPresent ( ) ) ; com.android.manifmerger.XmlDocument xmlDocument = mergedDocument.get ( ) ; assertTrue ( xmlDocument.getByTypeAndKey ( ManifestModel.NodeTypes.USES_PERMISSION , "android.permission.WRITE_EXTERNAL_STORAGE" ) . isPresent ( ) ) ; assertTrue ( xmlDocument.getByTypeAndKey ( ManifestModel.NodeTypes.USES_PERMISSION , "android.permission.READ_EXTERNAL_STORAGE" ) . isPresent ( ) ) ; assertTrue ( xmlDocument.getByTypeAndKey ( ManifestModel.NodeTypes.USES_PERMISSION , "android.permission.READ_PHONE_STATE" ) . isPresent ( ) ) ; assertFalse ( xmlDocument.getByTypeAndKey ( ManifestModel.NodeTypes.USES_PERMISSION , "android.permission.READ_CALL_LOG" ) . isPresent ( ) ) ; assertFalse ( xmlDocument.getByTypeAndKey ( ManifestModel.NodeTypes.USES_PERMISSION , "android.permission.WRITE_CALL_LOG" ) . isPresent ( ) ) ; com.android.manifmerger.Actions actions = mergingReportBuilder.getActionRecorder ( ) . build ( ) ; com.android.manifmerger.XmlElement xmlElement = xmlDocument.getByTypeAndKey ( ManifestModel.NodeTypes.USES_PERMISSION , "android.permission.WRITE_EXTERNAL_STORAGE" ) . get ( ) ; com.google.common.collect.ImmutableList < com.android.manifmerger.Actions.NodeRecord > nodeRecords = actions.getNodeRecords ( XmlNode.NodeKey.fromXml ( xmlElement.getXml ( ) ) ) ; assertEquals ( 1 , nodeRecords.size ( ) ) ; assertEquals ( nodeRecords.iterator ( ) . next ( ) . mReason , "targetSdkVersion < 4" ) ; }