Optional intent argument not passed to ADB correctly

Setup:

  • Appium 1.5.3
  • ADB 1.0.32, Revision 57224c5cff69-android
  • Windows 8
  • Python
  • Real device

I’m using appium to launch an android app and run tests against it. I usually run the tests on my OS X machine, but I’ve spent the last couple of days trying the setup on my Windows 8 machine. Everything was going dandy until appium tried passing my desired capabilities to adb. I’m attempting to pass through auth tokens, but hyphens within the auth tokens are breaking the flow. The code below shows what the tokens are supposed to look like compared to what adb is trying to use as arguments:

[HTTP] --> POST /wd/hub/session {"requiredCapabilities":{},"desiredCapabilities":{"optionalIntentArguments":"--es INTENT_EXTRA_AUTH_TOKEN eyJhbGciOiJFUzUxMiIsInhrdSI6Imh0dHBzOi8vbG9naW4uaHVkZGxlLnRlc3Qva2V5cy9qd3QuaW50ZXJuYWwudjEucGVtIn0.eyJpc3MiOiJsb2dpbi5odWRkbGUudGVzdCIsImV4cCI6MTQ2NzgxMTE4MywidXJuOmh1ZGRsZS5jbGFpbXMudXNlcmlkIjo2ODE2MjIsInVybjpodWRkbGUuY2xhaW1zLmNsaWVudElkIjoiYXBpLWRhdGEtYnVpbGRlciIsInVybjpodWRkbGUuY2xhaW1zLmh1ZGRsZWFkbWluIjowfQ.APd29TSt8TsNqX_drLKTRx10WNsOEWJO32ASt91EaOZ172tfikwKC6XDAlIIzJ06jB1kljvPeq20s4BSD5oL13KdAB5uCWQjRWp2mgA-lqp4-fxRtMdICpaOOy5fvPvFRkP0wVCpB8DZP9kYNkKzgChCHmwJc-9maqWJmipH8LlsMXdK, --es INTENT_EXTRA_REFRESH_TOKEN de36ddee-3606-4a52-afb2-b14c60e27742"}}

[debug] [ADB] Running C:\Android\android-sdk\platform-tools\adb.exe with args: ["--es","INTENT_EXTRA_AUTH_TOKEN","eyJhbGciOiJFUzUxMiIsInhrdSI6Imh0dHBzOi8vbG9naW4uaHVkZGxlLnRlc3Qva2V5cy9qd3QuaW50ZXJuYWwudjEucGVtIn0.eyJpc3MiOiJsb2dpbi5odWRkbGUudGVzdCIsImV4cCI6MTQ2NzgxMTE4MywidXJuOmh1ZGRsZS5jbGFpbXMudXNlcmlkIjo2ODE2MjIsInVybjpodWRkbGUuY2xhaW1zLmNsaWVudElkIjoiYXBpLWRhdGEtYnVpbGRlciIsInVybjpodWRkbGUuY2xhaW1zLmh1ZGRsZWFkbWluIjowfQ.APd29TSt8TsNqX_drLKTRx10WNsOEWJO32ASt91EaOZ172tfikwKC6XDAlIIzJ06jB1kljvPeq20s4BSD5oL13KdAB5uCWQjRWp2mgA","--es","INTENT_EXTRA_REFRESH_TOKEN","de36ddee"]

The tokens are being truncated once a hyphen is encountered. This is not an issue on my OS X setup, but the appium version is older (1.4.13).