/******************************************************************************* * * Copyright (c) 2004-2011 Oracle Corporation. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * * Kohsuke Kawaguchi, Nikita Levyankov * * *******************************************************************************/ package hudson.model; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; import static junit.framework.Assert.assertTrue; import net.sf.json.JSONObject; import org.apache.commons.io.IOUtils; import org.junit.Test; /** * Quick test for {@link UpdateCenter}. * * @author Kohsuke Kawaguchi */ public class UpdateCenterTest { @Test public void testData() throws IOException { // check if we have the internet connectivity. See HUDSON-2095 try { HttpURLConnection con = (HttpURLConnection) new URL("http://hudson-ci.org/").openConnection(); con.setRequestMethod("HEAD"); con.setConnectTimeout(10000); //set timeout to 10 seconds if (con.getResponseCode() != HttpURLConnection.HTTP_OK) { System.out.println("Skipping this test. Page doesn't exists"); return; } } catch (java.net.SocketTimeoutException e) { System.out.println("Skipping this test. Timeout exception"); return; } catch (IOException e) { System.out.println("Skipping this test. No internet connectivity"); return; } URL url = new URL("http://hudson-ci.org/update-center3.3/update-center.json?version=build"); String jsonp = IOUtils.toString(url.openStream()); String json = jsonp.substring(jsonp.indexOf('(')+1,jsonp.lastIndexOf(')')); UpdateSite us = new UpdateSite("default", url.toExternalForm()); UpdateSite.Data data = us.new Data(JSONObject.fromObject(json)); assertTrue(data.core.url.startsWith("http://hudson-ci.org/") || data.core.url.startsWith("http://eclipse.org/") || data.core.url.startsWith("http://download.eclipse.org/")); assertTrue(data.plugins.containsKey("rake")); System.out.println(data.core.url); } }