public void LabelAbbreviations()
{
m_dtree.Initialize(Cache, false, m_layouts, m_parts);
m_dtree.StringTbl = m_stringTable;
m_dtree.ShowObject(m_entry, "Abbrs", null, m_entry, false);
Assert.AreEqual(3, m_dtree.Controls.Count);
// 1) Test that labels that are not in "LabelAbbreviations" stringTable
// are abbreviated by being truncated to 4 characters.
Assert.AreEqual("CitationForm", (m_dtree.Controls[0] as Slice).Label);
string abbr1 = m_stringTable.GetString((m_dtree.Controls[0] as Slice).Label, "LabelAbbreviations");
Assert.AreEqual(abbr1, "*" + (m_dtree.Controls[0] as Slice).Label + "*"); // verify it's not in the table.
Assert.AreEqual("Cita", (m_dtree.Controls[0] as Slice).Abbreviation); // verify truncation took place.
// 2) Test that a label in "LabelAbbreviations" defaults to its string table entry.
Assert.AreEqual("Citation Form", (m_dtree.Controls[1] as Slice).Label);
string abbr2 = m_stringTable.GetString((m_dtree.Controls[1] as Slice).Label, "LabelAbbreviations");
Assert.IsFalse(abbr2 == "*" + (m_dtree.Controls[1] as Slice).Label + "*"); // verify it IS in the table
Assert.AreEqual(abbr2, (m_dtree.Controls[1] as Slice).Abbreviation); // should be identical
// 3) Test that a label with an "abbr" attribute overrides default abbreviation.
Assert.AreEqual("Citation Form", (m_dtree.Controls[2] as Slice).Label);
Assert.AreEqual((m_dtree.Controls[2] as Slice).Abbreviation, "!?");
Assert.IsFalse(abbr2 == (m_dtree.Controls[2] as Slice).Abbreviation);
}