public PushResult sendPush(PushPayload pushPayload) throws APIConnectionException, APIRequestException { if (_globalSettingEnabled) { pushPayload.resetOptionsTimeToLive(_timeToLive); pushPayload.resetOptionsApnsProduction(_apnsProduction); } ResponseWrapper response = _httpClient.sendPost(_baseUrl, pushPayload.toString(), _authCode); return PushResult.fromResponse(response); }
public PushResult sendPush(String payloadString) throws APIConnectionException, APIRequestException { ResponseWrapper response = _httpClient.sendPost(_baseUrl, payloadString, _authCode); return PushResult.fromResponse(response); }
@Test public void testSuccess() throws Exception { // Manually force a delta of an object so we reuse it later. // TemporaryBuffer.Heap pack = new TemporaryBuffer.Heap(1024); packHeader(pack, 2); pack.write((Constants.OBJ_BLOB) << 4 | 1); deflate(pack, new byte[] {'a'}); pack.write((Constants.OBJ_REF_DELTA) << 4 | 4); a.copyRawTo(pack); deflate(pack, new byte[] {0x1, 0x1, 0x1, 'b'}); digest(pack); openPack(pack); // Verify the only storage of b is our packed delta above. // ObjectDirectory od = (ObjectDirectory) src.getObjectDatabase(); assertTrue("has b", src.hasObject(b)); assertFalse("b not loose", od.fileFor(b).exists()); // Now use b but in a different commit than what is hidden. // TestRepository<Repository> s = new TestRepository<Repository>(src); RevCommit N = s.commit().parent(B).add("q", b).create(); s.update(R_MASTER, N); // Push this new content to the remote, doing strict validation. // TransportLocal t = new TransportLocal(src, uriOf(dst), dst.getDirectory()) { @Override ReceivePack createReceivePack(final Repository db) { db.close(); dst.incrementOpen(); final ReceivePack rp = super.createReceivePack(dst); rp.setCheckReceivedObjects(true); rp.setCheckReferencedObjectsAreReachable(true); rp.setAdvertiseRefsHook(new HidePrivateHook()); return rp; } }; RemoteRefUpdate u = new RemoteRefUpdate( // src, // R_MASTER, // src name R_MASTER, // dst name false, // do not force update null, // local tracking branch null // expected id ); PushResult r; try { t.setPushThin(true); r = t.push(PM, Collections.singleton(u)); } finally { t.close(); } assertNotNull("have result", r); assertNull("private not advertised", r.getAdvertisedRef(R_PRIVATE)); assertSame("master updated", RemoteRefUpdate.Status.OK, u.getStatus()); assertEquals(N, dst.resolve(R_MASTER)); }