diff --git a/enabler/src/de/schildbach/pte/NetworkId.java b/enabler/src/de/schildbach/pte/NetworkId.java
index 558b11b1..c327f09f 100644
--- a/enabler/src/de/schildbach/pte/NetworkId.java
+++ b/enabler/src/de/schildbach/pte/NetworkId.java
@@ -73,7 +73,7 @@ public enum NetworkId {
DUB,
// United States
- SEPTA, RTACHICAGO,
+ SEPTA, RTACHICAGO, OREGON,
// Canada
ONTARIO, QUEBEC,
diff --git a/enabler/src/de/schildbach/pte/OregonProvider.java b/enabler/src/de/schildbach/pte/OregonProvider.java
new file mode 100644
index 00000000..d7230e68
--- /dev/null
+++ b/enabler/src/de/schildbach/pte/OregonProvider.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2016 Clayton Craft.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package de.schildbach.pte;
+
+import okhttp3.HttpUrl;
+
+public class OregonProvider extends AbstractNavitiaProvider {
+ private static String API_REGION = "us-or";
+
+ public OregonProvider(final HttpUrl apiBase, final String authorization) {
+ super(NetworkId.OREGON, apiBase, authorization);
+
+ setTimeZone("America/Los_Angeles");
+ }
+
+ public OregonProvider(final String authorization) {
+ super(NetworkId.OREGON, authorization);
+
+ setTimeZone("America/Los_Angeles");
+ }
+
+ @Override
+ public String region() {
+ return API_REGION;
+ }
+}
diff --git a/enabler/test/de/schildbach/pte/live/OregonProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/OregonProviderLiveTest.java
new file mode 100644
index 00000000..c4016ebc
--- /dev/null
+++ b/enabler/test/de/schildbach/pte/live/OregonProviderLiveTest.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2016 Clayton Craft.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package de.schildbach.pte.live;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+import de.schildbach.pte.OregonProvider;
+import de.schildbach.pte.dto.Location;
+import de.schildbach.pte.dto.LocationType;
+import de.schildbach.pte.dto.NearbyLocationsResult;
+import de.schildbach.pte.dto.QueryDeparturesResult;
+import de.schildbach.pte.dto.SuggestLocationsResult;
+
+/**
+ * @author Stephane Berube
+ */
+public class OregonProviderLiveTest extends AbstractNavitiaProviderLiveTest {
+ public OregonProviderLiveTest() {
+ super(new OregonProvider(secretProperty("navitia.authorization")));
+ }
+
+ @Test
+ public void nearbyStations() throws Exception {
+ final NearbyLocationsResult result = queryNearbyStations(new Location(LocationType.STATION, "OTP:SP:5017"));
+ print(result);
+ }
+
+ @Test
+ public void nearbyStationsByCoordinate() throws Exception {
+ final NearbyLocationsResult result = queryNearbyStations(Location.coord(45514998, -122673334));
+ print(result);
+ }
+
+ @Test
+ public void queryDepartures() throws Exception {
+ final QueryDeparturesResult result = queryDepartures("OTP:SP:5017", false);
+ print(result);
+ }
+
+ @Test
+ public void queryDeparturesInvalidStation() throws Exception {
+ final QueryDeparturesResult result = queryDepartures("OTP:SP:xxxx", false);
+ assertEquals(QueryDeparturesResult.Status.INVALID_STATION, result.status);
+ }
+
+ @Test
+ public void suggestLocations() throws Exception {
+ final SuggestLocationsResult result = suggestLocations("Airport");
+ print(result);
+ }
+}