1d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 2d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)// found in the LICENSE file. 4d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 5d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/tests/test_platform_verification_private.h" 6d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 7d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/cpp/instance.h" 8d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/cpp/module.h" 9d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/cpp/private/platform_verification.h" 10d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/cpp/var.h" 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "ppapi/cpp/var_array_buffer.h" 12d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/tests/test_utils.h" 13d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ppapi/tests/testing_instance.h" 14d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 15d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)REGISTER_TEST_CASE(PlatformVerificationPrivate); 16d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 17d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)TestPlatformVerificationPrivate::TestPlatformVerificationPrivate( 18d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) TestingInstance* instance) 19d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) : TestCase(instance) {} 20d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 21d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)void TestPlatformVerificationPrivate::RunTests(const std::string& filter) { 22d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) RUN_CALLBACK_TEST(TestPlatformVerificationPrivate, ChallengePlatform, filter); 23d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} 24d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 25d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)std::string TestPlatformVerificationPrivate::TestChallengePlatform() { 26d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) pp::PlatformVerification platform_verification_api(instance_); 27d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 28d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) pp::VarArrayBuffer challenge_array(256); 29d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) uint8_t* var_data = static_cast<uint8_t*>(challenge_array.Map()); 30d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) for (uint32_t i = 0; i < challenge_array.ByteLength(); ++i) 31d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) var_data[i] = i; 32d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) 33d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) TestCompletionCallback callback(instance_->pp_instance(), callback_type()); 34d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) std::string service_id_str("fake.service.id"); 35d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) pp::Var signed_data, signed_data_signature, platform_key_certificate; 36d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) callback.WaitForResult(platform_verification_api.ChallengePlatform( 37d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) pp::Var(service_id_str), challenge_array, &signed_data, 38d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) &signed_data_signature, &platform_key_certificate, 39d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) callback.GetCallback())); 40d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) CHECK_CALLBACK_BEHAVIOR(callback); 415d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) ASSERT_EQ(PP_ERROR_FAILED, callback.result()); 42d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles) PASS(); 43d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)} 44