// Copyright (c) 2015 Marshall A. Greenblatt. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the name Chromium Embedded // Framework nor the names of its contributors may be used to endorse // or promote products derived from this software without specific prior // written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // // --------------------------------------------------------------------------- // // The contents of this file must follow a specific format in order to // support the CEF translator tool. See the translator.README.txt file in the // tools directory for more information. // // THIS FILE IS FOR TESTING PURPOSES ONLY. // // The APIs defined in this file are for testing purposes only. They should only // be included from unit test targets. // #ifndef CEF_INCLUDE_TEST_CEF_TEST_H_ #define CEF_INCLUDE_TEST_CEF_TEST_H_ #pragma once #if !defined(BUILDING_CEF_SHARED) && !defined(WRAPPING_CEF_SHARED) && \ !defined(UNIT_TEST) #error This file can be included for unit tests only #endif #include #include #include "include/cef_base.h" class CefTranslatorTestHandler; class CefTranslatorTestHandlerChild; class CefTranslatorTestObject; class CefTranslatorTestObjectChild; // Test values. #define TEST_INT_VAL 5 #define TEST_INT_VAL2 60 #define TEST_BOOL_VAL true #define TEST_DOUBLE_VAL 4.543 #define TEST_LONG_VAL -65 #define TEST_SIZET_VAL 3U #define TEST_STRING_VAL "My test string" #define TEST_STRING_VAL2 "My 2nd test string" #define TEST_STRING_VAL3 "My 3rd test string" #define TEST_STRING_KEY "key0" #define TEST_STRING_KEY2 "key1" #define TEST_STRING_KEY3 "key2" #define TEST_X_VAL 44 #define TEST_Y_VAL 754 #define TEST_X_VAL2 900 #define TEST_Y_VAL2 300 /// // Class for testing all of the possible data transfer types. /// /*--cef(source=library,no_debugct_check)--*/ class CefTranslatorTest : public CefBase { public: /// // Create the test object. /// /*--cef()--*/ static CefRefPtr Create(); // PRIMITIVE VALUES /// // Return a void value. /// /*--cef()--*/ virtual void GetVoid() =0; /// // Return a bool value. /// /*--cef()--*/ virtual bool GetBool() =0; /// // Return an int value. /// /*--cef()--*/ virtual int GetInt() =0; /// // Return a double value. /// /*--cef()--*/ virtual double GetDouble() =0; /// // Return a long value. /// /*--cef()--*/ virtual long GetLong() =0; /// // Return a size_t value. /// /*--cef()--*/ virtual size_t GetSizet() =0; /// // Set a void value. /// /*--cef()--*/ virtual bool SetVoid() =0; /// // Set a bool value. /// /*--cef()--*/ virtual bool SetBool(bool val) =0; /// // Set an int value. /// /*--cef()--*/ virtual bool SetInt(int val) =0; /// // Set a double value. /// /*--cef()--*/ virtual bool SetDouble(double val) =0; /// // Set a long value. /// /*--cef()--*/ virtual bool SetLong(long val) =0; /// // Set a size_t value. /// /*--cef()--*/ virtual bool SetSizet(size_t val) =0; // PRIMITIVE LIST VALUES // Test both with and without a typedef. typedef std::vector IntList; /// // Set a int list value. /// /*--cef()--*/ virtual bool SetIntList(const std::vector& val) =0; /// // Return an int list value by out-param. /// /*--cef(count_func=val:GetIntListSize)--*/ virtual bool GetIntListByRef(IntList& val) =0; /// // Return the number of points that will be output above. /// /*--cef()--*/ virtual size_t GetIntListSize() = 0; // STRING VALUES /// // Return a string value. /// /*--cef()--*/ virtual CefString GetString() =0; /// // Set a string value. /// /*--cef()--*/ virtual bool SetString(const CefString& val) =0; /// // Return a string value by out-param. /// /*--cef()--*/ virtual void GetStringByRef(CefString& val) =0; // STRING LIST VALUES // Test both with and without a typedef. typedef std::vector StringList; /// // Set a string list value. /// /*--cef()--*/ virtual bool SetStringList(const std::vector& val) =0; /// // Return a string list value by out-param. /// /*--cef()--*/ virtual bool GetStringListByRef(StringList& val) =0; // STRING MAP VALUES // Test both with and without a typedef. typedef std::map StringMap; /// // Set a string map value. /// /*--cef()--*/ virtual bool SetStringMap(const StringMap& val) =0; /// // Return a string map value by out-param. /// /*--cef()--*/ virtual bool GetStringMapByRef(std::map& val) =0; // STRING MULTIMAP VALUES // Test both with and without a typedef. typedef std::multimap StringMultimap; /// // Set a string multimap value. /// /*--cef()--*/ virtual bool SetStringMultimap( const std::multimap& val) =0; /// // Return a string multimap value by out-param. /// /*--cef()--*/ virtual bool GetStringMultimapByRef(StringMultimap& val) =0; // STRUCT VALUES /// // Return a point value. /// /*--cef()--*/ virtual CefPoint GetPoint() =0; /// // Set a point value. /// /*--cef()--*/ virtual bool SetPoint(const CefPoint& val) =0; /// // Return a point value by out-param. /// /*--cef()--*/ virtual void GetPointByRef(CefPoint& val) =0; // STRUCT LIST VALUES // Test both with and without a typedef. typedef std::vector PointList; /// // Set a point list vlaue. /// /*--cef()--*/ virtual bool SetPointList(const std::vector& val) =0; /// // Return a point list value by out-param. /// /*--cef(count_func=val:GetPointListSize)--*/ virtual bool GetPointListByRef(PointList& val) =0; /// // Return the number of points that will be output above. /// /*--cef()--*/ virtual size_t GetPointListSize() = 0; // LIBRARY-SIDE OBJECT VALUES /// // Return an new library-side object. /// /*--cef()--*/ virtual CefRefPtr GetObject(int val) =0; /// // Set an object. Returns the value from CefTranslatorTestObject::GetValue(). // This tests input and execution of a library-side object type. /// /*--cef()--*/ virtual int SetObject(CefRefPtr val) =0; /// // Set an object. Returns the object passed in. This tests input and output // of a library-side object type. /// /*--cef()--*/ virtual CefRefPtr SetObjectAndReturn( CefRefPtr val) =0; /// // Set a child object. Returns the value from // CefTranslatorTestObject::GetValue(). This tests input of a library-side // child object type and execution as the parent type. /// /*--cef()--*/ virtual int SetChildObject(CefRefPtr val) =0; /// // Set a child object. Returns the object as the parent type. This tests input // of a library-side child object type and return as the parent type. /// /*--cef()--*/ virtual CefRefPtr SetChildObjectAndReturnParent( CefRefPtr val) =0; // LIBRARY-SIDE OBJECT LIST VALUES // Test both with and without a typedef. typedef std::vector > ObjectList; /// // Set an object list vlaue. /// /*--cef()--*/ virtual bool SetObjectList( const std::vector >& val, int val1, int val2) =0; /// // Return an object list value by out-param. /// /*--cef(count_func=val:GetObjectListSize)--*/ virtual bool GetObjectListByRef(ObjectList& val, int val1, int val2) =0; /// // Return the number of object that will be output above. /// /*--cef()--*/ virtual size_t GetObjectListSize() = 0; // CLIENT-SIDE OBJECT VALUES /// // Set an object. Returns the value from CefTranslatorTestHandler::GetValue(). // This tests input and execution of a client-side object type. /// /*--cef()--*/ virtual int SetHandler(CefRefPtr val) =0; /// // Set an object. Returns the handler passed in. This tests input and output // of a client-side object type. /// /*--cef()--*/ virtual CefRefPtr SetHandlerAndReturn( CefRefPtr val) =0; /// // Set a child object. Returns the value from // CefTranslatorTestHandler::GetValue(). This tests input of a client-side // child object type and execution as the parent type. /// /*--cef()--*/ virtual int SetChildHandler(CefRefPtr val) =0; /// // Set a child object. Returns the object as the parent type. This tests // input of a client-side child object type and return as the parent type. /// /*--cef()--*/ virtual CefRefPtr SetChildHandlerAndReturnParent( CefRefPtr val) =0; // CLIENT-SIDE OBJECT LIST VALUES // Test both with and without a typedef. typedef std::vector > HandlerList; /// // Set an object list vlaue. /// /*--cef()--*/ virtual bool SetHandlerList( const std::vector >& val, int val1, int val2) =0; /// // Return an object list value by out-param. /// /*--cef(count_func=val:GetObjectListSize)--*/ virtual bool GetHandlerListByRef( HandlerList& val, CefRefPtr val1, CefRefPtr val2) =0; /// // Return the number of object that will be output above. /// /*--cef()--*/ virtual size_t GetHandlerListSize() = 0; }; /// // Library-side test object. /// /*--cef(source=library,no_debugct_check)--*/ class CefTranslatorTestObject : public CefBase { public: /// // Create the test object. /// /*--cef()--*/ static CefRefPtr Create(int value); /// // Return a value. /// /*--cef()--*/ virtual int GetValue() =0; /// // Set a value. /// /*--cef()--*/ virtual void SetValue(int value) =0; }; /// // Library-side child test object. /// /*--cef(source=library,no_debugct_check)--*/ class CefTranslatorTestObjectChild : public CefTranslatorTestObject { public: /// // Create the test object. /// /*--cef()--*/ static CefRefPtr Create(int value, int other_value); /// // Return a value. /// /*--cef()--*/ virtual int GetOtherValue() =0; /// // Set a value. /// /*--cef()--*/ virtual void SetOtherValue(int value) =0; }; /// // Another library-side child test object. /// /*--cef(source=library,no_debugct_check)--*/ class CefTranslatorTestObjectChildChild : public CefTranslatorTestObjectChild { public: /// // Create the test object. /// /*--cef()--*/ static CefRefPtr Create( int value, int other_value, int other_other_value); /// // Return a value. /// /*--cef()--*/ virtual int GetOtherOtherValue() =0; /// // Set a value. /// /*--cef()--*/ virtual void SetOtherOtherValue(int value) =0; }; /// // Client-side test object. /// /*--cef(source=client,no_debugct_check)--*/ class CefTranslatorTestHandler : public virtual CefBase { public: /// // Return a value. /// /*--cef()--*/ virtual int GetValue() =0; }; /// // Client-side child test object. /// /*--cef(source=client,no_debugct_check)--*/ class CefTranslatorTestHandlerChild : public CefTranslatorTestHandler { public: /// // Return a value. /// /*--cef()--*/ virtual int GetOtherValue() =0; }; #endif // CEF_INCLUDE_TEST_CEF_TEST_H_