@Test public void shouldParse_withTypeTextHtml_expectFalse() throws ParseException { JsonSupport jsonTransformer = createJsonParser(); final ImmutableList<String> typeList = ImmutableList.of("test/html"); final boolean should = jsonTransformer.shouldParse("http://url", "<html><body></body></html>", typeList); assertEquals(false, should); }
@Test public void shouldParse_withJSONContentAndUrl_expectTrue() throws ParseException { JsonSupport jsonTransformer = createJsonParser(); final ImmutableList<String> typeList = ImmutableList.of("application/json"); final boolean should = jsonTransformer.shouldParse( "http://url", "{\"id\":\"10154342691895026\",\"name\":\"Magne Nielsen\"}", typeList); assertEquals(true, should); }
@Test public void parse_withExampleContentAndPathToANoneExistingPath_expectNoUrlsToBeFoundInTheList() throws ParseException { JsonSupport jsonTransformer = createJsonParserWithUrlExtract(newArrayList("comments", "paging", "non")); Long timestamp = -1L; String url = ""; String response = createJSONFaceBookPost(); final PageData parse = jsonTransformer.parse(url, response, timestamp); final Set<String> urlSet = parse.getUrlSet(); assertTrue(urlSet.isEmpty()); }
@Test public void parse_withExampleContentAndPathToNextUrl_expectUrlsToBeContainedInList() throws ParseException { final String expectedUrl = "https://graph.facebook.com/me/albums?limit=25&after=Mjk5MzE1MzcwMjQxMDc2"; JsonSupport jsonTransformer = createJsonParserWithUrlExtract(newArrayList("comments", "paging", "next")); Long timestamp = -1L; String url = ""; String response = createJSONFaceBookPost(); final PageData parse = jsonTransformer.parse(url, response, timestamp); final Set<String> urlSet = parse.getUrlSet(); assertTrue(urlSet.contains(expectedUrl)); }
public void encodePacket( Packet packet, ByteBuf buffer, ByteBufAllocator allocator, boolean binary) throws IOException { ByteBuf buf = buffer; if (!binary) { buf = allocateBuffer(allocator); } byte type = toChar(packet.getType().getValue()); buf.writeByte(type); try { switch (packet.getType()) { case PONG: { buf.writeBytes(packet.getData().toString().getBytes(CharsetUtil.UTF_8)); break; } case OPEN: { ByteBufOutputStream out = new ByteBufOutputStream(buf); jsonSupport.writeValue(out, packet.getData()); break; } case MESSAGE: { ByteBuf encBuf = null; if (packet.getSubType() == PacketType.ERROR) { encBuf = allocateBuffer(allocator); ByteBufOutputStream out = new ByteBufOutputStream(encBuf); jsonSupport.writeValue(out, packet.getData()); } if (packet.getSubType() == PacketType.EVENT || packet.getSubType() == PacketType.ACK) { List<Object> values = new ArrayList<Object>(); if (packet.getSubType() == PacketType.EVENT) { values.add(packet.getName()); } encBuf = allocateBuffer(allocator); List<Object> args = packet.getData(); values.addAll(args); ByteBufOutputStream out = new ByteBufOutputStream(encBuf); jsonSupport.writeValue(out, values); if (!jsonSupport.getArrays().isEmpty()) { packet.initAttachments(jsonSupport.getArrays().size()); for (byte[] array : jsonSupport.getArrays()) { packet.addAttachment(Unpooled.wrappedBuffer(array)); } packet.setSubType(PacketType.BINARY_EVENT); } } byte subType = toChar(packet.getSubType().getValue()); buf.writeByte(subType); if (packet.hasAttachments()) { byte[] ackId = toChars(packet.getAttachments().size()); buf.writeBytes(ackId); buf.writeByte('-'); } if (packet.getSubType() == PacketType.CONNECT) { if (!packet.getNsp().isEmpty()) { buf.writeBytes(packet.getNsp().getBytes(CharsetUtil.UTF_8)); } } else { if (!packet.getNsp().isEmpty()) { buf.writeBytes(packet.getNsp().getBytes(CharsetUtil.UTF_8)); buf.writeByte(','); } } if (packet.getAckId() != null) { byte[] ackId = toChars(packet.getAckId()); buf.writeBytes(ackId); } if (encBuf != null) { buf.writeBytes(encBuf); encBuf.release(); } break; } } } finally { // we need to write a buffer in any case if (!binary) { buffer.writeByte(0); int length = buf.writerIndex(); buffer.writeBytes(longToBytes(length)); buffer.writeByte(0xff); buffer.writeBytes(buf); buf.release(); } } }