blob: d1af7d1f05ab6467cc324ee1d329b2ad38a99ee2 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "config.h"
#include "DictionaryTest.h"
#include "core/testing/InternalDictionary.h"
namespace blink {
DictionaryTest::DictionaryTest()
{
}
DictionaryTest::~DictionaryTest()
{
}
void DictionaryTest::set(const InternalDictionary& testingDictionary)
{
reset();
if (testingDictionary.hasLongMember())
m_longMember = testingDictionary.longMember();
m_longMemberWithDefault = testingDictionary.longMemberWithDefault();
if (testingDictionary.hasLongOrNullMember())
m_longOrNullMember = testingDictionary.longOrNullMember();
// |longOrNullMemberWithDefault| has a default value but can be null, so
// we need to check availability.
if (testingDictionary.hasLongOrNullMemberWithDefault())
m_longOrNullMemberWithDefault = testingDictionary.longOrNullMemberWithDefault();
if (testingDictionary.hasBooleanMember())
m_booleanMember = testingDictionary.booleanMember();
if (testingDictionary.hasDoubleMember())
m_doubleMember = testingDictionary.doubleMember();
m_stringMember = testingDictionary.stringMember();
m_stringMemberWithDefault = testingDictionary.stringMemberWithDefault();
if (testingDictionary.hasStringSequenceMember())
m_stringSequenceMember = testingDictionary.stringSequenceMember();
if (testingDictionary.hasStringSequenceOrNullMember())
m_stringSequenceOrNullMember = testingDictionary.stringSequenceOrNullMember();
m_enumMember = testingDictionary.enumMember();
m_enumMemberWithDefault = testingDictionary.enumMemberWithDefault();
m_enumOrNullMember = testingDictionary.enumOrNullMember();
if (testingDictionary.hasElementMember())
m_elementMember = testingDictionary.elementMember();
if (testingDictionary.hasElementOrNullMember())
m_elementOrNullMember = testingDictionary.elementOrNullMember();
m_objectMember = testingDictionary.objectMember();
m_objectOrNullMemberWithDefault = testingDictionary.objectOrNullMemberWithDefault();
}
void DictionaryTest::get(InternalDictionary& result)
{
if (m_longMember)
result.setLongMember(m_longMember.get());
result.setLongMemberWithDefault(m_longMemberWithDefault);
if (m_longOrNullMember)
result.setLongOrNullMember(m_longOrNullMember.get());
if (m_longOrNullMemberWithDefault)
result.setLongOrNullMemberWithDefault(m_longOrNullMemberWithDefault.get());
if (m_booleanMember)
result.setBooleanMember(m_booleanMember.get());
if (m_doubleMember)
result.setDoubleMember(m_doubleMember.get());
result.setStringMember(m_stringMember);
result.setStringMemberWithDefault(m_stringMemberWithDefault);
if (m_stringSequenceMember)
result.setStringSequenceMember(m_stringSequenceMember.get());
if (m_stringSequenceOrNullMember)
result.setStringSequenceOrNullMember(m_stringSequenceOrNullMember.get());
result.setEnumMember(m_enumMember);
result.setEnumMemberWithDefault(m_enumMemberWithDefault);
result.setEnumOrNullMember(m_enumOrNullMember);
if (m_elementMember)
result.setElementMember(m_elementMember);
if (m_elementOrNullMember)
result.setElementOrNullMember(m_elementOrNullMember);
result.setObjectMember(m_objectMember);
result.setObjectOrNullMemberWithDefault(m_objectOrNullMemberWithDefault);
}
void DictionaryTest::reset()
{
m_longMember = Nullable<int>();
m_longMemberWithDefault = -1; // This value should not be returned.
m_longOrNullMember = Nullable<int>();
m_longOrNullMemberWithDefault = Nullable<int>();
m_booleanMember = Nullable<bool>();
m_doubleMember = Nullable<double>();
m_stringMember = String();
m_stringMemberWithDefault = String("Should not be returned");
m_stringSequenceMember = Nullable<Vector<String> >();
m_stringSequenceOrNullMember = Nullable<Vector<String> >();
m_enumMember = String();
m_enumMemberWithDefault = String();
m_enumOrNullMember = String();
m_elementMember = nullptr;
m_elementOrNullMember = nullptr;
m_objectMember = ScriptValue();
m_objectOrNullMemberWithDefault = ScriptValue();
}
void DictionaryTest::trace(Visitor* visitor)
{
visitor->trace(m_elementMember);
visitor->trace(m_elementOrNullMember);
}
}