diff --git a/tasks/e2e-simple.sh b/tasks/e2e-simple.sh
index f8baf743de7a36da48b9040328c2d4f7564417d4..d0acb16b412d7532e24cf9bd31c8adfbb2b377eb 100755
--- a/tasks/e2e-simple.sh
+++ b/tasks/e2e-simple.sh
@@ -142,6 +142,55 @@ create_react_app --scripts-version=$scripts_path test-app
 # let's make sure all npm scripts are in the working state.
 # ******************************************************************************
 
+function verify_env_url {
+  # Backup package.json because we're going to make it dirty
+  cp package.json package.json.orig
+
+  # Test default behavior
+  grep -F -R --exclude=*.map "\"/static/" build/ -q; test $? -eq 0 || exit 1
+
+  # Test relative path build
+  awk -v n=2 -v s="  \"homepage\": \".\"," 'NR == n {print s} {print}' package.json > tmp && mv tmp package.json
+
+  npm run build
+  # Disabled until this can be tested
+  # grep -F -R --exclude=*.map "../../static/" build/ -q; test $? -eq 0 || exit 1
+  grep -F -R --exclude=*.map "\"./static/" build/ -q; test $? -eq 0 || exit 1
+  grep -F -R --exclude=*.map "\"/static/" build/ -q; test $? -eq 1 || exit 1
+
+  PUBLIC_URL="/anabsolute" npm run build
+  grep -F -R --exclude=*.map "/anabsolute/static/" build/ -q; test $? -eq 0 || exit 1
+  grep -F -R --exclude=*.map "\"/static/" build/ -q; test $? -eq 1 || exit 1
+
+  # Test absolute path build
+  sed "2s/.*/  \"homepage\": \"\/testingpath\",/" package.json > tmp && mv tmp package.json
+
+  npm run build
+  grep -F -R --exclude=*.map "/testingpath/static/" build/ -q; test $? -eq 0 || exit 1
+  grep -F -R --exclude=*.map "\"/static/" build/ -q; test $? -eq 1 || exit 1
+
+  PUBLIC_URL="https://www.example.net/overridetest" npm run build
+  grep -F -R --exclude=*.map "https://www.example.net/overridetest/static/" build/ -q; test $? -eq 0 || exit 1
+  grep -F -R --exclude=*.map "\"/static/" build/ -q; test $? -eq 1 || exit 1
+  grep -F -R --exclude=*.map "testingpath/static" build/ -q; test $? -eq 1 || exit 1
+
+  # Test absolute url build
+  sed "2s/.*/  \"homepage\": \"https:\/\/www.example.net\/testingpath\",/" package.json > tmp && mv tmp package.json
+
+  npm run build
+  grep -F -R --exclude=*.map "/testingpath/static/" build/ -q; test $? -eq 0 || exit 1
+  grep -F -R --exclude=*.map "\"/static/" build/ -q; test $? -eq 1 || exit 1
+
+  PUBLIC_URL="https://www.example.net/overridetest" npm run build
+  grep -F -R --exclude=*.map "https://www.example.net/overridetest/static/" build/ -q; test $? -eq 0 || exit 1
+  grep -F -R --exclude=*.map "\"/static/" build/ -q; test $? -eq 1 || exit 1
+  grep -F -R --exclude=*.map "testingpath/static" build/ -q; test $? -eq 1 || exit 1
+
+  # Restore package.json
+  rm package.json
+  mv package.json.orig package.json
+}
+
 # Enter the app directory
 cd test-app
 
@@ -162,6 +211,9 @@ CI=true npm test
 # Test the server
 npm start -- --smoke-test
 
+# Test environment handling
+verify_env_url
+
 # ******************************************************************************
 # Finally, let's check that everything still works after ejecting.
 # ******************************************************************************
@@ -195,6 +247,8 @@ npm test -- --watch=no
 # Test the server
 npm start -- --smoke-test
 
+# Test environment handling
+verify_env_url
 
 # Cleanup
 cleanup