private object[] DefaultValueTest(string[][] data)
{
var result = new List<object>();
var defaultStrings = new string[fieldNames.Count];
//var expectedValues = new string[fieldNames.Count];
foreach (var record in data)
{
//new string[]{"ShortTextField", "Default short text value.", "Default short text value."},
string fieldName = record[0];
int fieldIndex = fieldNames.IndexOf(fieldName);
defaultStrings[fieldIndex] = String.Concat("<DefaultValue>", record[1], "</DefaultValue>");
//expectedValues[fieldIndex] = record[2];
}
//----
var ctd = String.Format(ctdFormat, defaultStrings);
ContentTypeInstaller.InstallContentType(ctd);
//----
var contentTypeName = "DefaultValueTesterContentType";
var contentType = ContentType.GetByName(contentTypeName);
//==== create a new Content
var newContent = Content.CreateNew(contentTypeName, _testRoot, "Content1");
object fieldValue;
for (int i = 0; i < data.Length; i++)
{
var record = data[i];
string fieldName = record[0];
var field = newContent.Fields[fieldName];
try
{
//==== simulating contentview:
//-- create control
FieldControl control = GenericFieldControl.CreateDefaultFieldControl(field);
var controlAcc = new FieldControlAccessor(control);
//-- RegisterFieldControl
controlAcc.ConnectToField(field);
//-- SetData
controlAcc.SetDataInternal();
//-- Post default value
field.SetData(control.GetData());
//-- check posted value
fieldValue = newContent[fieldName];
result.Add(fieldValue);
}
catch (Exception e)
{
Exception ee = e;
StringBuilder sb = new StringBuilder();
while (ee != null)
{
sb.Append(ee.Message);
ee = ee.InnerException;
}
result.Add(String.Concat(fieldName, "{Exception:\"", sb.ToString(), "\"}"));
}
}
return result.ToArray();
}
}