mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Improve inheritance support in the CEF API (issue #1623).
- Support single parent inheritance in CEF API classes. - Support non-virtual inheritance in CEF API classes. - Support translation of CEF API sub-directories. - Add test sub-directories for testing-only functionality that will be available to unit tests but not exposed via the binary distribution. - Add unit tests for the translator tool. - Fix parsing of template parameter types that include commas.
This commit is contained in:
543
include/test/cef_translator_test.h
Normal file
543
include/test/cef_translator_test.h
Normal file
@ -0,0 +1,543 @@
|
||||
// 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 will not be
|
||||
// exposed via the binary distribution. All classes in this file must include
|
||||
// the 'no_debugct_check' attribute to avoid problems when building the binary
|
||||
// distribution.
|
||||
//
|
||||
|
||||
#ifndef CEF_INCLUDE_TEST_CEF_TEST_H_
|
||||
#define CEF_INCLUDE_TEST_CEF_TEST_H_
|
||||
#pragma once
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
#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<CefTranslatorTest> 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<int> IntList;
|
||||
|
||||
///
|
||||
// Set a int list value.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual bool SetIntList(const std::vector<int>& 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<CefString> StringList;
|
||||
|
||||
///
|
||||
// Set a string list value.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual bool SetStringList(const std::vector<CefString>& 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<CefString, CefString> 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<CefString, CefString>& val) =0;
|
||||
|
||||
|
||||
// STRING MULTIMAP VALUES
|
||||
|
||||
// Test both with and without a typedef.
|
||||
typedef std::multimap<CefString, CefString> StringMultimap;
|
||||
|
||||
///
|
||||
// Set a string multimap value.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual bool SetStringMultimap(
|
||||
const std::multimap<CefString, CefString>& 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<CefPoint> PointList;
|
||||
|
||||
///
|
||||
// Set a point list vlaue.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual bool SetPointList(const std::vector<CefPoint>& 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<CefTranslatorTestObject> 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<CefTranslatorTestObject> val) =0;
|
||||
|
||||
///
|
||||
// Set an object. Returns the object passed in. This tests input and output
|
||||
// of a library-side object type.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual CefRefPtr<CefTranslatorTestObject> SetObjectAndReturn(
|
||||
CefRefPtr<CefTranslatorTestObject> 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<CefTranslatorTestObjectChild> 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<CefTranslatorTestObject> SetChildObjectAndReturnParent(
|
||||
CefRefPtr<CefTranslatorTestObjectChild> val) =0;
|
||||
|
||||
|
||||
// LIBRARY-SIDE OBJECT LIST VALUES
|
||||
|
||||
// Test both with and without a typedef.
|
||||
typedef std::vector<CefRefPtr<CefTranslatorTestObject> > ObjectList;
|
||||
|
||||
///
|
||||
// Set an object list vlaue.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual bool SetObjectList(
|
||||
const std::vector<CefRefPtr<CefTranslatorTestObject> >& 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<CefTranslatorTestHandler> val) =0;
|
||||
|
||||
///
|
||||
// Set an object. Returns the handler passed in. This tests input and output
|
||||
// of a client-side object type.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual CefRefPtr<CefTranslatorTestHandler> SetHandlerAndReturn(
|
||||
CefRefPtr<CefTranslatorTestHandler> 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<CefTranslatorTestHandlerChild> 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<CefTranslatorTestHandler> SetChildHandlerAndReturnParent(
|
||||
CefRefPtr<CefTranslatorTestHandlerChild> val) =0;
|
||||
|
||||
|
||||
// CLIENT-SIDE OBJECT LIST VALUES
|
||||
|
||||
// Test both with and without a typedef.
|
||||
typedef std::vector<CefRefPtr<CefTranslatorTestHandler> > HandlerList;
|
||||
|
||||
///
|
||||
// Set an object list vlaue.
|
||||
///
|
||||
/*--cef()--*/
|
||||
virtual bool SetHandlerList(
|
||||
const std::vector<CefRefPtr<CefTranslatorTestHandler> >& 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<CefTranslatorTestHandler> val1,
|
||||
CefRefPtr<CefTranslatorTestHandler> 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<CefTranslatorTestObject> 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<CefTranslatorTestObjectChild> 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<CefTranslatorTestObjectChildChild> 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_
|
Reference in New Issue
Block a user