/**
* Copyright (C) 2012-2014 Gist Labs, LLC. (http://gistlabs.com)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
package com.gistlabs.mechanize.document.json.impl;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.util.List;
import org.junit.Test;
import com.gistlabs.mechanize.MechanizeTestCase;
import com.gistlabs.mechanize.document.json.JsonDocument;
import com.gistlabs.mechanize.document.json.node.JsonNode;
import com.gistlabs.mechanize.document.node.Node;
import com.gistlabs.mechanize.util.apache.ContentType;
/**
*/
public class JsonPageTest extends MechanizeTestCase {
@Override
protected String contentType() {
return ContentType.APPLICATION_JSON.getMimeType();
}
@Test
public void testLoadJson() {
addPageRequest("GET", "http://test.com", getClass().getResourceAsStream("dropbox.account.info.json"));
JsonDocument page = agent().get("http://test.com");
assertNotNull(page);
assertEquals(JsonDocument.class, page.getClass());
}
@Test
public void testParseJson() {
addPageRequest("GET", "http://test.com", getClass().getResourceAsStream("dropbox.account.info.json"));
JsonDocument page = agent().get("http://test.com");
assertNotNull(page.getRoot());
assertEquals("US", page.getRoot().getAttribute("country"));
JsonNode node = page.getRoot().find("quota_info");
assertEquals("107374182400000", node.getAttribute("quota"));
}
@Test
public void testTwitterJson() {
addPageRequest("GET", "http://test.com", getClass().getResourceAsStream("twitter.json"));
JsonDocument page = agent().get("http://test.com");
assertNotNull(page);
assertEquals(JsonDocument.class, page.getClass());
List<? extends Node> users = page.findAll("user");
assertEquals(17, users.size());
}
}