|
1 |
| -using System; |
| 1 | +using System; |
2 | 2 | using System.Collections.Generic;
|
3 | 3 | using System.Diagnostics;
|
4 | 4 | using System.IO;
|
@@ -172,5 +172,45 @@ public void CanGetAppTheme ()
|
172 | 172 |
|
173 | 173 | Assert.AreEqual ("@android:style/Theme.Material.Light", manifest.ApplicationTheme);
|
174 | 174 | }
|
| 175 | + |
| 176 | + [Test] |
| 177 | + public void CanAddAndRemoveUsesSdk () |
| 178 | + { |
| 179 | + XNamespace aNS = "http://schemas.android.com/apk/res/android"; |
| 180 | + var versions = new AndroidVersions (new AndroidVersion [0]); |
| 181 | + var doc = XDocument.Parse (@" |
| 182 | + <manifest xmlns:android=""http://schemas.android.com/apk/res/android"" android:versionCode=""1"" android:versionName=""1.0"" package=""com.xamarin.Foo""> |
| 183 | + <uses-sdk android:minSdkVersion=""8"" android:targetSdkVersion=""12"" /> |
| 184 | + <application android:label=""Foo"" android:icon=""@drawable/ic_icon"" android:theme=""@android:style/Theme.Material.Light""> |
| 185 | + </application> |
| 186 | + </manifest>"); |
| 187 | + var manifest = AndroidAppManifest.Load (doc, versions); |
| 188 | + |
| 189 | + manifest.MinSdkVersion = null; |
| 190 | + manifest.TargetSdkVersion = null; |
| 191 | + |
| 192 | + var sb = new StringBuilder (); |
| 193 | + using (var writer = XmlWriter.Create (sb)) { |
| 194 | + manifest.Write (writer); |
| 195 | + } |
| 196 | + |
| 197 | + var newDoc = XDocument.Parse (sb.ToString ()); |
| 198 | + var usesSdk = newDoc.Element ("manifest").Element ("uses-sdk"); |
| 199 | + Assert.IsNull (usesSdk, "uses-sdk should not exist"); |
| 200 | + |
| 201 | + manifest.MinSdkVersion = 8; |
| 202 | + manifest.TargetSdkVersion = 12; |
| 203 | + |
| 204 | + sb = new StringBuilder (); |
| 205 | + using (var writer = XmlWriter.Create (sb)) { |
| 206 | + manifest.Write (writer); |
| 207 | + } |
| 208 | + |
| 209 | + newDoc = XDocument.Parse (sb.ToString ()); |
| 210 | + usesSdk = newDoc.Element ("manifest").Element ("uses-sdk"); |
| 211 | + Assert.IsNotNull (usesSdk, "uses-sdk should exist"); |
| 212 | + Assert.AreEqual ("8", usesSdk.Attribute (aNS + "minSdkVersion").Value); |
| 213 | + Assert.AreEqual ("12", usesSdk.Attribute (aNS + "targetSdkVersion").Value); |
| 214 | + } |
175 | 215 | }
|
176 | 216 | }
|
0 commit comments