SurfaceTextureClient_test.cpp revision 391bbe2246a7547dbf3460c231b3c5ba691d4eb1
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
38134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie GennisTEST_F(SurfaceTextureClientTest, QueuesToWindowCompositorIsFalse) {
39134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    sp<ANativeWindow> anw(mSTC);
40134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    int result = -123;
41134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    int err = anw->query(anw.get(), NATIVE_WINDOW_QUEUES_TO_WINDOW_COMPOSER,
42134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis            &result);
43134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    EXPECT_EQ(NO_ERROR, err);
44134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis    EXPECT_EQ(0, result);
45134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis}
46134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis
47391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie GennisTEST_F(SurfaceTextureClientTest, ConcreteTypeIsSurfaceTextureClient) {
48391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis    sp<ANativeWindow> anw(mSTC);
49391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis    int result = -123;
50391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis    int err = anw->query(anw.get(), NATIVE_WINDOW_CONCRETE_TYPE, &result);
51391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis    EXPECT_EQ(NO_ERROR, err);
52391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis    EXPECT_EQ(NATIVE_WINDOW_SURFACE_TEXTURE_CLIENT, result);
53391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis}
54391bbe2246a7547dbf3460c231b3c5ba691d4eb1Jamie Gennis
55134f0422866e8985188ed10dfbdcb8e6c34b87f7Jamie Gennis}
56