1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
6 #include "DictionaryTest.h"
8 #include "core/testing/InternalDictionary.h"
12 DictionaryTest::DictionaryTest()
16 DictionaryTest::~DictionaryTest()
20 void DictionaryTest::set(const InternalDictionary& testingDictionary)
23 if (testingDictionary.hasLongMember())
24 m_longMember = testingDictionary.longMember();
25 m_longMemberWithDefault = testingDictionary.longMemberWithDefault();
26 if (testingDictionary.hasLongOrNullMember())
27 m_longOrNullMember = testingDictionary.longOrNullMember();
28 // |longOrNullMemberWithDefault| has a default value but can be null, so
29 // we need to check availability.
30 if (testingDictionary.hasLongOrNullMemberWithDefault())
31 m_longOrNullMemberWithDefault = testingDictionary.longOrNullMemberWithDefault();
32 if (testingDictionary.hasBooleanMember())
33 m_booleanMember = testingDictionary.booleanMember();
34 if (testingDictionary.hasDoubleMember())
35 m_doubleMember = testingDictionary.doubleMember();
36 m_stringMember = testingDictionary.stringMember();
37 m_stringMemberWithDefault = testingDictionary.stringMemberWithDefault();
38 if (testingDictionary.hasStringSequenceMember())
39 m_stringSequenceMember = testingDictionary.stringSequenceMember();
40 if (testingDictionary.hasStringSequenceOrNullMember())
41 m_stringSequenceOrNullMember = testingDictionary.stringSequenceOrNullMember();
42 m_enumMember = testingDictionary.enumMember();
43 m_enumMemberWithDefault = testingDictionary.enumMemberWithDefault();
44 m_enumOrNullMember = testingDictionary.enumOrNullMember();
45 if (testingDictionary.hasElementMember())
46 m_elementMember = testingDictionary.elementMember();
47 if (testingDictionary.hasElementOrNullMember())
48 m_elementOrNullMember = testingDictionary.elementOrNullMember();
49 m_objectMember = testingDictionary.objectMember();
50 m_objectOrNullMemberWithDefault = testingDictionary.objectOrNullMemberWithDefault();
53 void DictionaryTest::get(InternalDictionary& result)
56 result.setLongMember(m_longMember.get());
57 result.setLongMemberWithDefault(m_longMemberWithDefault);
58 if (m_longOrNullMember)
59 result.setLongOrNullMember(m_longOrNullMember.get());
60 if (m_longOrNullMemberWithDefault)
61 result.setLongOrNullMemberWithDefault(m_longOrNullMemberWithDefault.get());
63 result.setBooleanMember(m_booleanMember.get());
65 result.setDoubleMember(m_doubleMember.get());
66 result.setStringMember(m_stringMember);
67 result.setStringMemberWithDefault(m_stringMemberWithDefault);
68 if (m_stringSequenceMember)
69 result.setStringSequenceMember(m_stringSequenceMember.get());
70 if (m_stringSequenceOrNullMember)
71 result.setStringSequenceOrNullMember(m_stringSequenceOrNullMember.get());
72 result.setEnumMember(m_enumMember);
73 result.setEnumMemberWithDefault(m_enumMemberWithDefault);
74 result.setEnumOrNullMember(m_enumOrNullMember);
76 result.setElementMember(m_elementMember);
77 if (m_elementOrNullMember)
78 result.setElementOrNullMember(m_elementOrNullMember);
79 result.setObjectMember(m_objectMember);
80 result.setObjectOrNullMemberWithDefault(m_objectOrNullMemberWithDefault);
83 void DictionaryTest::reset()
85 m_longMember = Nullable<int>();
86 m_longMemberWithDefault = -1; // This value should not be returned.
87 m_longOrNullMember = Nullable<int>();
88 m_longOrNullMemberWithDefault = Nullable<int>();
89 m_booleanMember = Nullable<bool>();
90 m_doubleMember = Nullable<double>();
91 m_stringMember = String();
92 m_stringMemberWithDefault = String("Should not be returned");
93 m_stringSequenceMember = Nullable<Vector<String> >();
94 m_stringSequenceOrNullMember = Nullable<Vector<String> >();
95 m_enumMember = String();
96 m_enumMemberWithDefault = String();
97 m_enumOrNullMember = String();
98 m_elementMember = nullptr;
99 m_elementOrNullMember = nullptr;
100 m_objectMember = ScriptValue();
101 m_objectOrNullMemberWithDefault = ScriptValue();
104 void DictionaryTest::trace(Visitor* visitor)
106 visitor->trace(m_elementMember);
107 visitor->trace(m_elementOrNullMember);