private String doGetRequest() throws IOException, ClientProtocolException { String url = method.buildUrl(); if (!url.endsWith("?")) { url += "?"; } List<NameValuePair> params = new LinkedList<NameValuePair>(); if (requestObject != null) { for (Field field : requestObject.getClass().getDeclaredFields()) { try { field.setAccessible(true); params.add(new BasicNameValuePair(field.getName(), field.get(requestObject).toString())); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } } String paramString = URLEncodedUtils.format(params, "utf-8"); url += paramString; HttpGet request = new HttpGet(url); request.addHeader("Accept", "application/json"); return innerApiCall(request); }
protected void getCompletedMethods( List<String> result, String completionText, Class<? extends ApiMethod> apiMethod, ApiMethodHelper<? extends ApiMethod> helper) { // add potential method names final ApiMethod[] methods = apiMethod.getEnumConstants(); for (ApiMethod method : methods) { final String name = method.getName(); if (name.startsWith(completionText)) { result.add(name); } } // add potential aliases final Map<String, Set<String>> aliases = helper.getAliases(); for (String alias : aliases.keySet()) { if (alias.startsWith(completionText)) { result.add(alias); } } }
private String innerDoRequest(ApiMethod method, V parameter) throws IOException, ClientProtocolException { String plainObject = null; switch (method.getHttpMethod()) { case POST: plainObject = doPostRequest(); break; case GET: plainObject = doGetRequest(); break; } return plainObject; }
private String doPostRequest() throws IOException, ClientProtocolException { HttpPost request = new HttpPost(method.buildUrl()); request.addHeader("Content-Type", "application/json"); request.addHeader("Accept", "application/json"); Gson gson = GsonProvider.getGson(); String rawBody = gson.toJson(requestObject); Log.d("REMOTE_DO_POST", rawBody); request.setEntity(new StringEntity(rawBody)); StringBuilder sb = new StringBuilder(); Header[] headers = request.getAllHeaders(); for (Header header : headers) { sb.append(header.getName() + ":: " + header.getValue() + "::"); } return innerApiCall(request); }
public static void printXmlReport( List<File> testApks, ApiCoverage apiCoverage, OutputStream outputStream) { PrintStream out = new PrintStream(outputStream); out.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); out.println("<?xml-stylesheet type=\"text/xsl\" href=\"api-coverage.xsl\"?>"); SimpleDateFormat format = new SimpleDateFormat("EEE, MMM d, yyyy h:mm a z"); String date = format.format(new Date(System.currentTimeMillis())); out.println("<api-coverage generatedTime=\"" + date + "\">"); out.println("<debug>"); out.println("<sources>"); for (File testApk : testApks) { out.println("<apk path=\"" + testApk.getPath() + "\" />"); } out.println("</sources>"); out.println("</debug>"); out.println("<api>"); CoverageComparator comparator = new CoverageComparator(); List<ApiPackage> packages = new ArrayList<ApiPackage>(apiCoverage.getPackages()); Collections.sort(packages, comparator); int totalMethods = 0; int totalCoveredMethods = 0; for (ApiPackage pkg : packages) { if (pkg.getName().startsWith("android") && pkg.getTotalMethods() > 0) { int pkgTotal = pkg.getTotalMethods(); totalMethods += pkgTotal; int pkgTotalCovered = pkg.getNumCoveredMethods(); totalCoveredMethods += pkgTotalCovered; out.println( "<package name=\"" + pkg.getName() + "\" numCovered=\"" + pkgTotalCovered + "\" numTotal=\"" + pkgTotal + "\" coveragePercentage=\"" + Math.round(pkg.getCoveragePercentage()) + "\">"); List<ApiClass> classes = new ArrayList<ApiClass>(pkg.getClasses()); Collections.sort(classes, comparator); for (ApiClass apiClass : classes) { if (apiClass.getTotalMethods() > 0) { out.println( "<class name=\"" + apiClass.getName() + "\" numCovered=\"" + apiClass.getNumCoveredMethods() + "\" numTotal=\"" + apiClass.getTotalMethods() + "\" deprecated=\"" + apiClass.isDeprecated() + "\" coveragePercentage=\"" + Math.round(apiClass.getCoveragePercentage()) + "\">"); for (ApiConstructor constructor : apiClass.getConstructors()) { out.println( "<constructor name=\"" + constructor.getName() + "\" deprecated=\"" + constructor.isDeprecated() + "\" covered=\"" + constructor.isCovered() + "\">"); if (constructor.isDeprecated()) { if (constructor.isCovered()) { totalCoveredMethods -= 1; } totalMethods -= 1; } for (String parameterType : constructor.getParameterTypes()) { out.println("<parameter type=\"" + parameterType + "\" />"); } out.println("</constructor>"); } for (ApiMethod method : apiClass.getMethods()) { out.println( "<method name=\"" + method.getName() + "\" returnType=\"" + method.getReturnType() + "\" deprecated=\"" + method.isDeprecated() + "\" covered=\"" + method.isCovered() + "\">"); if (method.isDeprecated()) { if (method.isCovered()) { totalCoveredMethods -= 1; } totalMethods -= 1; } for (String parameterType : method.getParameterTypes()) { out.println("<parameter type=\"" + parameterType + "\" />"); } out.println("</method>"); } out.println("</class>"); } } out.println("</package>"); } } out.println("</api>"); out.println( "<total numCovered=\"" + totalCoveredMethods + "\" " + "numTotal=\"" + totalMethods + "\" " + "coveragePercentage=\"" + Math.round((float) totalCoveredMethods / totalMethods * 100.0f) + "\" />"); out.println("</api-coverage>"); }