SurfaceTextureClient_test.cpp revision bae774eb20bebd409441b93386b51bccda75f546
1134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis/*
2134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis * Copyright (C) 2011 The Android Open Source Project
3134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis *
4134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis * Licensed under the Apache License, Version 2.0 (the "License");
5134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis * you may not use this file except in compliance with the License.
6134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis * You may obtain a copy of the License at
7134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis *
8134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis *      http://www.apache.org/licenses/LICENSE-2.0
9134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis *
10134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis * Unless required by applicable law or agreed to in writing, software
11134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis * distributed under the License is distributed on an "AS IS" BASIS,
12134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis * See the License for the specific language governing permissions and
14134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis * limitations under the License.
15134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis */
16134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis
17134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis#include <gui/SurfaceTextureClient.h>
18134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis#include <gtest/gtest.h>
19134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis
20134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennisnamespace android {
21134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis
22134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennisclass SurfaceTextureClientTest : public ::testing::Test {
23134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennisprotected:
24134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    virtual void SetUp() {
25134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis        mST = new SurfaceTexture(123);
26134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis        mSTC = new SurfaceTextureClient(mST);
27134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    }
28134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis
29134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    virtual void TearDown() {
30134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis        mST.clear();
31134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis        mSTC.clear();
32134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    }
33134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis
34134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    sp<SurfaceTexture> mST;
35134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    sp<SurfaceTextureClient> mSTC;
36134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis};
37134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis
38bae774eb20bebd409441b93386b51bccda75f546Jamie GennisTEST_F(SurfaceTextureClientTest, GetISurfaceTextureIsNotNull) {
39bae774eb20bebd409441b93386b51bccda75f546Jamie Gennis    sp<ISurfaceTexture> ist(mSTC->getISurfaceTexture());
40bae774eb20bebd409441b93386b51bccda75f546Jamie Gennis    ASSERT_TRUE(ist != NULL);
41bae774eb20bebd409441b93386b51bccda75f546Jamie Gennis}
42bae774eb20bebd409441b93386b51bccda75f546Jamie Gennis
43134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie GennisTEST_F(SurfaceTextureClientTest, QueuesToWindowCompositorIsFalse) {
44134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    sp<ANativeWindow> anw(mSTC);
45134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    int result = -123;
46134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    int err = anw->query(anw.get(), NATIVE_WINDOW_QUEUES_TO_WINDOW_COMPOSER,
47134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis            &result);
48134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    EXPECT_EQ(NO_ERROR, err);
49134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    EXPECT_EQ(0, result);
50134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis}
51134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis
52391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie GennisTEST_F(SurfaceTextureClientTest, ConcreteTypeIsSurfaceTextureClient) {
53391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis    sp<ANativeWindow> anw(mSTC);
54391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis    int result = -123;
55391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis    int err = anw->query(anw.get(), NATIVE_WINDOW_CONCRETE_TYPE, &result);
56391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis    EXPECT_EQ(NO_ERROR, err);
57391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis    EXPECT_EQ(NATIVE_WINDOW_SURFACE_TEXTURE_CLIENT, result);
58391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis}
59391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis
60134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis}
61