Parse orientation value from qualifiers. (#3046)

Set Configuration.orientation accordingly.
diff --git a/robolectric-resources/src/main/java/org/robolectric/res/Qualifiers.java b/robolectric-resources/src/main/java/org/robolectric/res/Qualifiers.java
index bf439f1..d57355c 100644
--- a/robolectric-resources/src/main/java/org/robolectric/res/Qualifiers.java
+++ b/robolectric-resources/src/main/java/org/robolectric/res/Qualifiers.java
@@ -14,6 +14,7 @@
   private static final Pattern SMALLEST_SCREEN_WIDTH_PATTERN = Pattern.compile("^sw([0-9]+)dp");
   private static final Pattern VERSION_QUALIFIER_PATTERN = Pattern.compile("(v)([0-9]+)$");
   private static final Pattern SIZE_QUALIFIER_PATTERN = Pattern.compile("(s?[wh])([0-9]+)dp");
+  private static final Pattern ORIENTATION_QUALIFIER_PATTERN = Pattern.compile("(land|port)");
 
   // Version are matched in the end, and hence have least order
   private static final int ORDER_VERSION = 0;
@@ -179,4 +180,14 @@
     }
     return qualifiers;
   }
+
+  public static String getOrientation(String qualifiers) {
+    for (String qualifier : qualifiers.split("-")) {
+      Matcher matcher = ORIENTATION_QUALIFIER_PATTERN.matcher(qualifier);
+      if (matcher.find()) {
+        return matcher.group(1);
+      }
+    }
+    return null;
+  }
 }
diff --git a/robolectric-resources/src/test/java/org/robolectric/res/QualifiersTest.java b/robolectric-resources/src/test/java/org/robolectric/res/QualifiersTest.java
index f7e9f8b..d683568 100644
--- a/robolectric-resources/src/test/java/org/robolectric/res/QualifiersTest.java
+++ b/robolectric-resources/src/test/java/org/robolectric/res/QualifiersTest.java
@@ -60,4 +60,11 @@
     assertThat(Qualifiers.addScreenWidth("v7", 320)).isEqualTo("v7-w320dp");
     assertThat(Qualifiers.addScreenWidth("w320dp-v7", 480)).isEqualTo("w320dp-v7");
   }
+
+  @Test public void getOrientation() {
+    assertThat(Qualifiers.getOrientation("land")).isEqualTo("land");
+    assertThat(Qualifiers.getOrientation("en-rUs-land")).isEqualTo("land");
+    assertThat(Qualifiers.getOrientation("port")).isEqualTo("port");
+    assertThat(Qualifiers.getOrientation("port-v7")).isEqualTo("port");
+  }
 }
diff --git a/robolectric/src/main/java/org/robolectric/android/internal/ParallelUniverse.java b/robolectric/src/main/java/org/robolectric/android/internal/ParallelUniverse.java
index d346db2..9c0b230 100644
--- a/robolectric/src/main/java/org/robolectric/android/internal/ParallelUniverse.java
+++ b/robolectric/src/main/java/org/robolectric/android/internal/ParallelUniverse.java
@@ -81,6 +81,15 @@
     Configuration configuration = systemResources.getConfiguration();
     configuration.smallestScreenWidthDp = Qualifiers.getSmallestScreenWidth(qualifiers);
     configuration.screenWidthDp = Qualifiers.getScreenWidth(qualifiers);
+    String orientation = Qualifiers.getOrientation(qualifiers);
+    if ("land".equals(orientation)) {
+      configuration.orientation = Configuration.ORIENTATION_LANDSCAPE;
+    } else if ("port".equals(orientation)) {
+      configuration.orientation = Configuration.ORIENTATION_PORTRAIT;
+    } else {
+      configuration.orientation = Configuration.ORIENTATION_UNDEFINED;
+    }
+
     systemResources.updateConfiguration(configuration, systemResources.getDisplayMetrics());
     RuntimeEnvironment.setQualifiers(qualifiers);
 
diff --git a/robolectric/src/test/java/org/robolectric/QualifiersTest.java b/robolectric/src/test/java/org/robolectric/QualifiersTest.java
index 749c80a..e7cb7a1 100644
--- a/robolectric/src/test/java/org/robolectric/QualifiersTest.java
+++ b/robolectric/src/test/java/org/robolectric/QualifiersTest.java
@@ -1,6 +1,7 @@
 package org.robolectric;
 
 import android.app.Activity;
+import android.content.res.Configuration;
 import android.view.View;
 import android.widget.TextView;
 import org.junit.Test;
@@ -14,6 +15,13 @@
 public class QualifiersTest {
 
   @Test
+  @Config(qualifiers = "land")
+  public void orientation() throws Exception {
+    assertThat(Robolectric.setupActivity(Activity.class).getResources().getConfiguration().orientation)
+        .isEqualTo(Configuration.ORIENTATION_LANDSCAPE);
+  }
+
+  @Test
   public void shouldGetFromClass() throws Exception {
     assertThat(RuntimeEnvironment.getQualifiers()).contains("en");
   }