| Index: chrome/test/android/javatests_staging/src/org/chromium/chrome/test/omaha/AttributeFinder.java
|
| diff --git a/chrome/test/android/javatests_staging/src/org/chromium/chrome/test/omaha/AttributeFinder.java b/chrome/test/android/javatests_staging/src/org/chromium/chrome/test/omaha/AttributeFinder.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4fdea1f82f13cebf5afde89d77c99c7a83e643a6
|
| --- /dev/null
|
| +++ b/chrome/test/android/javatests_staging/src/org/chromium/chrome/test/omaha/AttributeFinder.java
|
| @@ -0,0 +1,69 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +package org.chromium.chrome.test.omaha;
|
| +
|
| +import android.util.Log;
|
| +
|
| +import org.xml.sax.Attributes;
|
| +import org.xml.sax.InputSource;
|
| +import org.xml.sax.SAXException;
|
| +import org.xml.sax.SAXParseException;
|
| +import org.xml.sax.helpers.DefaultHandler;
|
| +
|
| +import java.io.IOException;
|
| +import java.io.StringReader;
|
| +
|
| +import javax.xml.parsers.ParserConfigurationException;
|
| +import javax.xml.parsers.SAXParser;
|
| +import javax.xml.parsers.SAXParserFactory;
|
| +
|
| +/**
|
| + * Pulls out a given tag attribute's value from the XML.
|
| + * Assumes that the same tag doesn't appear twice with the same attribute.
|
| + */
|
| +public class AttributeFinder extends DefaultHandler {
|
| + private static final String TAG = "AttributeFinder";
|
| +
|
| + private final String mDesiredTag;
|
| + private final String mDesiredAttribute;
|
| + private boolean mTagFound;
|
| + private String mValue;
|
| +
|
| + public AttributeFinder(String xml, String tag, String attribute) {
|
| + mDesiredTag = tag;
|
| + mDesiredAttribute = attribute;
|
| +
|
| + try {
|
| + SAXParserFactory factory = SAXParserFactory.newInstance();
|
| + SAXParser saxParser = factory.newSAXParser();
|
| + saxParser.parse(new InputSource(new StringReader(xml)), this);
|
| + } catch (IOException e) {
|
| + Log.e(TAG, "Hit IOException", e);
|
| + } catch (ParserConfigurationException e) {
|
| + Log.e(TAG, "Hit ParserConfigurationException", e);
|
| + } catch (SAXParseException e) {
|
| + Log.e(TAG, "Hit SAXParseException", e);
|
| + } catch (SAXException e) {
|
| + Log.e(TAG, "Hit SAXException", e);
|
| + }
|
| + }
|
| +
|
| + @Override
|
| + public void startElement(String uri, String localName, String tag, Attributes attributes)
|
| + throws SAXException {
|
| + if (tag.equals(mDesiredTag)) {
|
| + mTagFound = true;
|
| + mValue = mDesiredAttribute != null ? attributes.getValue(mDesiredAttribute) : null;
|
| + }
|
| + }
|
| +
|
| + public boolean isTagFound() {
|
| + return mTagFound;
|
| + }
|
| +
|
| + public String getValue() {
|
| + return mValue;
|
| + }
|
| +}
|
|
|