Bug 1545039 - Correctly copy request bodies in GeckoWebExecutor r=geckoview-reviewers,agi

Differential Revision: https://phabricator.services.mozilla.com/D28095

--HG--
extra : moz-landing-system : lando
This commit is contained in:
James Willcox 2019-04-18 19:56:30 +00:00
Родитель 656ad346f2
Коммит aad7c3abc2
2 изменённых файлов: 15 добавлений и 2 удалений

Просмотреть файл

@ -44,6 +44,7 @@ import org.mozilla.geckoview.test.util.Environment
import org.mozilla.geckoview.test.util.HttpBin
import org.mozilla.geckoview.test.util.RuntimeCreator
import java.net.UnknownHostException
import java.util.*
@MediumTest
@RunWith(AndroidJUnit4::class)
@ -106,10 +107,22 @@ class WebExecutorTest {
return JSONObject(bodyString)
}
private fun randomString(count: Int): String {
val chars = "01234567890abcdefghijklmnopqrstuvwxyz[],./?;'"
val builder = StringBuilder(count)
val rand = Random(System.currentTimeMillis())
for (i in 0 until count) {
builder.append(chars[rand.nextInt(chars.length)])
}
return builder.toString()
}
@Test
fun smoke() {
val uri = "$TEST_ENDPOINT/anything"
val bodyString = "This is the POST data"
val bodyString = randomString(8192)
val referrer = "http://foo/bar"
val request = WebRequest.Builder(uri)

Просмотреть файл

@ -87,7 +87,7 @@ class ByteBufferStream final : public nsIInputStream {
std::min(uint64_t(mBuffer->Capacity() - mPosition), uint64_t(aCount)));
if (*aCountRead > 0) {
memcpy(aBuf, (char*)mBuffer->Address(), *aCountRead);
memcpy(aBuf, (char*)mBuffer->Address() + mPosition, *aCountRead);
mPosition += *aCountRead;
}