blob: ae60a91a78c391dc2f4c3f8b391db8dde3cc9974 [file] [log] [blame]
/*
* Copyright (C) 2013 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.gallery3d.jpegstream;
import android.test.suitebuilder.annotation.MediumTest;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Point;
import android.os.Environment;
import android.util.Log;
import com.android.gallery3d.common.Utils;
import com.android.gallery3d.tests.R;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.util.Arrays;
public class JpegStreamReaderTest extends JpegStreamTestCase {
public static final String TAG = "JpegStreamReaderTest";
private JPEGInputStream mStream;
private Bitmap mBitmap;
public JpegStreamReaderTest(int imageRes) {
super(imageRes);
}
@Override
public void setUp() throws Exception {
super.setUp();
mBitmap = BitmapFactory.decodeStream(getImageInputStream());
}
@Override
public void tearDown() throws Exception {
super.tearDown();
Utils.closeSilently(mStream);
mStream = null;
if (mBitmap != null) {
mBitmap.recycle();
mBitmap = null;
}
}
@MediumTest
public void testBasicReads() throws Exception {
// Setup input stream.
mStream = new JPEGInputStream(reopenFileStream(), JpegConfig.FORMAT_RGBA);
Point dimens = mStream.getDimensions();
// Read whole stream into array.
byte[] bytes = new byte[dimens.x * StreamUtils.pixelSize(JpegConfig.FORMAT_RGBA) * dimens.y];
assertTrue(mStream.read(bytes, 0, bytes.length) == bytes.length);
// Set pixels in bitmap
Bitmap test = Bitmap.createBitmap(dimens.x, dimens.y, Bitmap.Config.ARGB_8888);
ByteBuffer buf = ByteBuffer.wrap(bytes);
test.copyPixelsFromBuffer(buf);
assertTrue(test.getWidth() == mBitmap.getWidth() && test.getHeight() == mBitmap.getHeight());
assertTrue(mStream.read(bytes, 0, bytes.length) == -1);
}
// TODO : more tests
}