Test case for SLING-9213
diff --git a/src/test/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandlerTest.java b/src/test/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandlerTest.java
index 15c0bc6..6a20185 100644
--- a/src/test/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandlerTest.java
+++ b/src/test/java/org/apache/sling/feature/extension/apiregions/APIRegionMergeHandlerTest.java
@@ -16,12 +16,17 @@
  */
 package org.apache.sling.feature.extension.apiregions;
 
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import java.io.File;
 import java.io.IOException;
 import java.io.StringReader;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Comparator;
+
 import javax.json.Json;
 import javax.json.JsonArray;
 import javax.json.JsonReader;
@@ -39,9 +44,6 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mockito;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 
 public class APIRegionMergeHandlerTest {
     private Path tempDir;
@@ -151,4 +153,43 @@
 
         assertEquals(ea, aa);
     }
+
+    @Test
+    public void testAPIRegioOrdering() throws Exception {
+        APIRegionMergeHandler armh = new APIRegionMergeHandler();
+
+        Feature f1 = new Feature(ArtifactId.fromMvnId("x:t:1"));
+        Feature f2 = new Feature(ArtifactId.fromMvnId("y:s:2"));
+
+        final ApiRegions regionsF1 = new ApiRegions();
+        final ApiRegion middleF1 = new ApiRegion("middle");
+        regionsF1.add(middleF1);
+
+        final Extension extF1 = new Extension(ExtensionType.JSON, ApiRegions.EXTENSION_NAME, ExtensionState.OPTIONAL);
+        extF1.setJSONStructure(regionsF1.toJSONArray());
+        f1.getExtensions().add(extF1);
+
+        final ApiRegions regionsF2 = new ApiRegions();
+        final ApiRegion topF2 = new ApiRegion("top");
+        final ApiRegion middleF2 = new ApiRegion("middle");
+        final ApiRegion bottomF2 = new ApiRegion("bottom");
+        regionsF2.add(topF2);
+        regionsF2.add(middleF2);
+        regionsF2.add(bottomF2);
+
+        final Extension extF2 = new Extension(ExtensionType.JSON, ApiRegions.EXTENSION_NAME, ExtensionState.OPTIONAL);
+        extF2.setJSONStructure(regionsF2.toJSONArray());
+        f2.getExtensions().add(extF2);
+
+
+        HandlerContext hc = Mockito.mock(HandlerContext.class);
+        armh.merge(hc, f1, f2, extF1, extF2);
+
+        // order must be top - middle - bottom
+        final ApiRegions result = ApiRegions.parse((JsonArray)extF1.getJSONStructure());
+        assertEquals(3, result.getRegionNames().size());
+        assertEquals("top", result.getRegionNames().get(0));
+        assertEquals("middle", result.getRegionNames().get(1));
+        assertEquals("bottom", result.getRegionNames().get(2));
+    }
 }