diff options
Diffstat (limited to 'vendor/github.com/gotk3/gotk3/gtk/gtk_test.go')
-rw-r--r-- | vendor/github.com/gotk3/gotk3/gtk/gtk_test.go | 739 |
1 files changed, 0 insertions, 739 deletions
diff --git a/vendor/github.com/gotk3/gotk3/gtk/gtk_test.go b/vendor/github.com/gotk3/gotk3/gtk/gtk_test.go deleted file mode 100644 index bde4d0e..0000000 --- a/vendor/github.com/gotk3/gotk3/gtk/gtk_test.go +++ /dev/null @@ -1,739 +0,0 @@ -/* - * Copyright (c) 2013-2014 Conformal Systems <info@conformal.com> - * - * This file originated from: http://opensource.conformal.com/ - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -package gtk - -import ( - "fmt" - "log" - "testing" - "time" - - "github.com/gotk3/gotk3/gdk" - "github.com/gotk3/gotk3/glib" -) - -func init() { - Init(nil) -} - -// TestBoolConvs tests the conversion between Go bools and gboolean -// types. -func TestBoolConvs(t *testing.T) { - if err := testBoolConvs(); err != nil { - t.Error(err) - } -} - -// TestBox tests creating and adding widgets to a Box -func TestBox(t *testing.T) { - vbox, err := BoxNew(ORIENTATION_VERTICAL, 0) - if err != nil { - t.Error("Unable to create box") - } - - vbox.Set("homogeneous", true) - if vbox.GetHomogeneous() != true { - t.Error("Could not set or get Box homogeneous property") - } - - vbox.SetHomogeneous(false) - if vbox.GetHomogeneous() != false { - t.Error("Could not set or get Box homogeneous property") - } - - vbox.Set("spacing", 1) - if vbox.GetSpacing() != 1 { - t.Error("Could not set or get Box spacing") - } - - vbox.SetSpacing(2) - if vbox.GetSpacing() != 2 { - t.Error("Could not set or get Box spacing") - } - - // add a child to start and end - start, err := LabelNew("Start") - if err != nil { - t.Error("Unable to create label") - } - - end, err := LabelNew("End") - if err != nil { - t.Error("Unable to create label") - } - - vbox.PackStart(start, true, true, 3) - vbox.PackEnd(end, true, true, 3) -} -func TestTextBuffer_WhenSetText_ExpectGetTextReturnsSame(t *testing.T) { - buffer, err := TextBufferNew(nil) - if err != nil { - t.Error("Unable to create text buffer") - } - expected := "Hello, World!" - buffer.SetText(expected) - - start, end := buffer.GetBounds() - - actual, err := buffer.GetText(start, end, true) - if err != nil { - t.Error("Unable to get text from buffer") - } - - if actual != expected { - t.Errorf("Expected '%s'; Got '%s'", expected, actual) - } -} - -func testTextViewEditable(set bool) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - exp := set - tv.SetEditable(exp) - act := tv.GetEditable() - if exp != act { - return fmt.Errorf("Expected GetEditable(): %v; Got: %v", exp, act) - } - return nil -} - -func TestTextView_WhenSetEditableFalse_ExpectGetEditableReturnsFalse(t *testing.T) { - if err := testTextViewEditable(false); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetEditableTrue_ExpectGetEditableReturnsTrue(t *testing.T) { - if err := testTextViewEditable(true); err != nil { - t.Error(err) - } -} - -func testTextViewWrapMode(set WrapMode) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - exp := set - tv.SetWrapMode(set) - act := tv.GetWrapMode() - if act != exp { - return fmt.Errorf("Expected GetWrapMode(): %v; Got: %v", exp, act) - } - return nil -} - -func TestTextView_WhenSetWrapModeNone_ExpectGetWrapModeReturnsNone(t *testing.T) { - if err := testTextViewWrapMode(WRAP_NONE); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetWrapModeWord_ExpectGetWrapModeReturnsWord(t *testing.T) { - if err := testTextViewWrapMode(WRAP_WORD); err != nil { - t.Error(err) - } -} - -func testTextViewCursorVisible(set bool) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - exp := set - tv.SetCursorVisible(set) - act := tv.GetCursorVisible() - if act != exp { - return fmt.Errorf("Expected GetCursorVisible(): %v; Got: %v", exp, act) - } - return nil -} - -func TestTextView_WhenSetCursorVisibleFalse_ExpectGetCursorVisibleReturnsFalse(t *testing.T) { - if err := testTextViewCursorVisible(false); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetCursorVisibleTrue_ExpectGetCursorVisibleReturnsTrue(t *testing.T) { - if err := testTextViewCursorVisible(true); err != nil { - t.Error(err) - } -} - -func testTextViewOverwrite(set bool) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - exp := set - tv.SetOverwrite(set) - act := tv.GetOverwrite() - if act != exp { - return fmt.Errorf("Expected GetOverwrite(): %v; Got: %v", exp, act) - } - return nil -} - -func TestTextView_WhenSetOverwriteFalse_ExpectGetOverwriteReturnsFalse(t *testing.T) { - if err := testTextViewOverwrite(false); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetOverwriteTrue_ExpectGetOverwriteReturnsTrue(t *testing.T) { - if err := testTextViewOverwrite(true); err != nil { - t.Error(err) - } -} - -func testTextViewJustification(justify Justification) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - exp := justify - tv.SetJustification(justify) - act := tv.GetJustification() - if act != exp { - return fmt.Errorf("Expected GetJustification(): %v; Got: %v", exp, act) - } - return nil -} - -func TestTextView_WhenSetJustificationLeft_ExpectGetJustificationReturnsLeft(t *testing.T) { - if err := testTextViewJustification(JUSTIFY_LEFT); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetJustificationRight_ExpectGetJustificationReturnsRight(t *testing.T) { - if err := testTextViewJustification(JUSTIFY_RIGHT); err != nil { - t.Error(err) - } -} - -func testTextViewAcceptsTab(set bool) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - exp := set - tv.SetAcceptsTab(set) - if act := tv.GetAcceptsTab(); act != exp { - return fmt.Errorf("Expected GetAcceptsTab(): %v; Got: %v", exp, act) - } - return nil -} - -func TestTextView_WhenSetAcceptsTabFalse_ExpectGetAcceptsTabReturnsFalse(t *testing.T) { - if err := testTextViewAcceptsTab(false); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetAcceptsTabTrue_ExpectGetAcceptsTabReturnsTrue(t *testing.T) { - if err := testTextViewAcceptsTab(true); err != nil { - t.Error(err) - } -} - -func testIntProperty(val int, set func(int), get func() int) error { - set(val) - if exp, act := val, get(); act != exp { - return fmt.Errorf("Expected: %d; got: %d", exp, act) - } - return nil -} - -func testTextViewPixelsAboveLines(px int) error { - tv, err := TextViewNew() - if err != nil { - return err - } - return testIntProperty(px, (*tv).SetPixelsAboveLines, (*tv).GetPixelsAboveLines) -} - -func TestTextView_WhenSetPixelsAboveLines10_ExpectGetPixelsAboveLinesReturns10(t *testing.T) { - if err := testTextViewPixelsAboveLines(10); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetPixelsAboveLines11_ExpectGetPixelsAboveLinesReturns11(t *testing.T) { - if err := testTextViewPixelsAboveLines(11); err != nil { - t.Error(err) - } -} - -func testTextViewPixelsBelowLines(px int) error { - tv, err := TextViewNew() - if err != nil { - return err - } - return testIntProperty(px, (*tv).SetPixelsBelowLines, (*tv).GetPixelsBelowLines) -} - -func TestTextView_WhenSetPixelsBelowLines10_ExpectGetPixelsAboveLinesReturns10(t *testing.T) { - if err := testTextViewPixelsBelowLines(10); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetPixelsBelowLines11_ExpectGetPixelsBelowLinesReturns11(t *testing.T) { - if err := testTextViewPixelsBelowLines(11); err != nil { - t.Error(err) - } -} - -func testTextViewPixelsInsideWrap(px int) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - return testIntProperty(px, (*tv).SetPixelsInsideWrap, (*tv).GetPixelsInsideWrap) -} - -func TestTextView_WhenSetPixelsInsideWrap10_ExpectGetPixelsInsideWrapReturns11(t *testing.T) { - if err := testTextViewPixelsInsideWrap(10); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetPixelsInsideWrap11_ExpectGetPixelsInsideWrapReturns11(t *testing.T) { - if err := testTextViewPixelsInsideWrap(11); err != nil { - t.Error(err) - } -} - -func testTextViewLeftMargin(margin int) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - return testIntProperty(margin, (*tv).SetLeftMargin, (*tv).GetLeftMargin) -} - -func TestTextView_WhenSetLeftMargin11_ExpectGetLeftMarginReturns11(t *testing.T) { - if err := testTextViewLeftMargin(11); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetLeftMargin10_ExpectGetLeftMarginReturns10(t *testing.T) { - if err := testTextViewLeftMargin(10); err != nil { - t.Error(err) - } -} - -func testTextViewRightMargin(margin int) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - return testIntProperty(margin, (*tv).SetRightMargin, (*tv).GetRightMargin) -} - -func TestTextView_WhenSetRightMargin10_ExpectGetRightMarginReturns10(t *testing.T) { - if err := testTextViewRightMargin(10); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetRightMargin11_ExpectGetRightMarginReturns11(t *testing.T) { - if err := testTextViewRightMargin(11); err != nil { - t.Error(err) - } -} - -func testTextViewIndent(indent int) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - return testIntProperty(indent, (*tv).SetIndent, (*tv).GetIndent) -} - -func TestTextView_WhenSetIndent10_ExpectGetIndentReturns10(t *testing.T) { - if err := testTextViewIndent(10); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetIndent11_ExpectGetIndentReturns11(t *testing.T) { - if err := testTextViewIndent(11); err != nil { - t.Error(err) - } -} - -func testTextViewInputHints(hint InputHints) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - tv.SetInputHints(hint) - if exp, act := hint, tv.GetInputHints(); act != exp { - return fmt.Errorf("Expected %v; Got %v", exp, act) - } - return nil -} - -func TestTextView_WhenSetInputHintsNone_ExpectGetInputHintsReturnsNone(t *testing.T) { - if err := testTextViewInputHints(INPUT_HINT_NONE); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetInputHintsSpellCheck_ExpectGetInputHintsReturnsSpellCheck(t *testing.T) { - if err := testTextViewInputHints(INPUT_HINT_SPELLCHECK); err != nil { - t.Error(err) - } -} - -func testTextViewInputPurpose(purpose InputPurpose) error { - tv, err := TextViewNew() - if err != nil { - return err - } - - tv.SetInputPurpose(purpose) - if exp, act := purpose, tv.GetInputPurpose(); act != exp { - return fmt.Errorf("Expected %v; Got %v", exp, act) - } - return nil -} - -func TestTextView_WhenSetInputPurposeURL_ExpectGetInputPurposeReturnsURL(t *testing.T) { - if err := testTextViewInputPurpose(INPUT_PURPOSE_URL); err != nil { - t.Error(err) - } -} - -func TestTextView_WhenSetInputPurposeALPHA_ExpectGetInputPurposeReturnsALPHA(t *testing.T) { - if err := testTextViewInputPurpose(INPUT_PURPOSE_ALPHA); err != nil { - t.Error(err) - } -} - -func testCellRendererToggleSetRadio(set bool) error { - renderer, err := CellRendererToggleNew() - if err != nil { - return err - } - - renderer.SetRadio(set) - if exp, act := set, renderer.GetRadio(); act != exp { - return fmt.Errorf("Expected GetRadio(): %v; Got: %v", exp, act) - } - return nil -} - -func TestCellRendererToggle_WhenSetRadioFalse_ExpectGetRadioReturnsFalse(t *testing.T) { - if err := testCellRendererToggleSetRadio(false); err != nil { - t.Error(err) - } -} - -func TestCellRendererToggle_WhenSetRadioTrue_ExpectGetRadioReturnsTrue(t *testing.T) { - if err := testCellRendererToggleSetRadio(true); err != nil { - t.Error(err) - } -} - -func testCellRendererToggleSetActive(set bool) error { - renderer, err := CellRendererToggleNew() - if err != nil { - return err - } - - renderer.SetActive(set) - if exp, act := set, renderer.GetActive(); act != exp { - return fmt.Errorf("Expected GetActive(): %v; Got: %v", exp, act) - } - return nil -} - -func TestCellRendererToggle_WhenSetActiveFalse_ExpectGetActiveReturnsFalse(t *testing.T) { - if err := testCellRendererToggleSetActive(false); err != nil { - t.Error(err) - } -} - -func TestCellRendererToggle_WhenSetActiveTrue_ExpectGetActiveReturnsTrue(t *testing.T) { - if err := testCellRendererToggleSetActive(true); err != nil { - t.Error(err) - } -} - -func testCellRendererToggleSetActivatable(set bool) error { - renderer, err := CellRendererToggleNew() - if err != nil { - return err - } - - renderer.SetActivatable(set) - if exp, act := set, renderer.GetActivatable(); act != exp { - return fmt.Errorf("Expected GetActivatable(): %v; Got: %v", exp, act) - } - return nil -} - -func TestCellRendererToggle_WhenSetActivatableFalse_ExpectGetActivatableReturnsFalse(t *testing.T) { - if err := testCellRendererToggleSetActivatable(false); err != nil { - t.Error(err) - } -} - -func TestCellRendererToggle_WhenSetActivatableTrue_ExpectGetActivatableReturnsTrue(t *testing.T) { - if err := testCellRendererToggleSetActivatable(true); err != nil { - t.Error(err) - } -} - -func setupListStore() *ListStore { - ls, err := ListStoreNew(glib.TYPE_STRING) - if err != nil { - log.Fatal("Unexpected err:", err) - } - return ls -} - -func getLastIter(ls *ListStore) (*TreeIter, bool) { - iter, listIsntEmpty := ls.GetIterFirst() - if !listIsntEmpty { - return iter, listIsntEmpty - } - - for { - temp := *iter - last := &temp - if !ls.IterNext(iter) { - return last, true - } - } - - panic("Shouldn't get here") -} - -// TestListStoreRemoveLastInvalidIterator tests that when a ListStore stores -// one item and it is removed, the iterator becomes invalid. -func TestListStoreRemoveLastInvalidIterator(t *testing.T) { - ls := setupListStore() - - iter := ls.Append() - - if iterValid := ls.Remove(iter); iterValid { - t.Fatal("Remove() returned true (iter valid); expected false (iter invalid)") - } -} - -func TestListStoreInsertBefore(t *testing.T) { - ls := setupListStore() - - // Given 1 iter is already in the liststore - initialIter := ls.Append() - - // When another iter is inserted before it - newIter := ls.InsertBefore(initialIter) - - // Expect the newly-inserted iter is first iter in list - firstIter, listIsntEmpty := ls.GetIterFirst() - if !listIsntEmpty { - t.Fatal("Unexpected: liststore is empty") - } - - if *firstIter != *newIter { - t.Fatal("Expected the new iter added to front of list") - } -} - -// When 'sibling' parameter is nil, the new iter should be appended to the liststore -func TestListStoreInsertBefore_WhenNilSibling(t *testing.T) { - ls := setupListStore() - - // Given 2 iters in liststore - ls.Append() - ls.Append() - - // When 'sibling' parameter of InsertBefore() is nil... - newIter := ls.InsertBefore(nil) - - // Then expect newly-inserted iter is the first iter in list - lastIter, listIsntEmpty := getLastIter(ls) - if !listIsntEmpty { - t.Fatal("Unexpected: liststore is empty") - } - - if *lastIter != *newIter { - t.Fatal("Expected the new iter added to end of list") - } -} - -func TestListStoreInsertAfter(t *testing.T) { - ls := setupListStore() - - // Given 1 iter in liststore - sibling := ls.Append() - - // When InsertAfter(sibling) - newIter := ls.InsertAfter(sibling) - - // Then expect newly-inserted iter is the last iter in list - lastIter, listIsntEmpty := getLastIter(ls) - if !listIsntEmpty { - t.Fatal("Unexpected: liststore is empty") - } - - if *lastIter != *newIter { - t.Fatal("Expected the new iter added to end of list") - } -} - -// When 'sibling' parameter is nil, the new iter should be prepended to the liststore -func TestListStoreInsertAfter_WhenNilSibling(t *testing.T) { - ls := setupListStore() - - // Given 2 iters in liststore - ls.Append() - ls.Append() - - // When InsertAfter(nil) - newIter := ls.InsertAfter(nil) - - // Then expect newly-inserted iter is the first iter in the list - first, listIsntEmpty := ls.GetIterFirst() - if !listIsntEmpty { - t.Fatal("Unexpected: liststore is empty") - } - - if *first != *newIter { - t.Fatal("Expected the new iter was prepended to liststore") - } -} - -func TestBuilder(t *testing.T) { - builder, err := BuilderNew() - if err != nil { - t.Error("Unable to create builder") - } - - str := ` -<interface> - <object class="GtkDialog" id="dialog1"> - <child internal-child="vbox"> - <object class="GtkBox" id="vbox1"> - <property name="border-width">10</property> - <child internal-child="action_area"> - <object class="GtkButtonBox" id="hbuttonbox1"> - <property name="border-width">20</property> - <child> - <object class="GtkButton" id="ok_button"> - <property name="label">gtk-ok</property> - <property name="use-stock">TRUE</property> - <signal name="clicked" handler="ok_button_clicked"/> - </object> - </child> - </object> - </child> - </object> - </child> - </object> -</interface> -` - - err = builder.AddFromString(str) - if err != nil { - t.Error("Unable to add from string") - } - - widget, err := builder.GetObject("ok_button") - if err != nil { - t.Error("Unable to get widget from string") - } - - button, ok := widget.(*Button) - if !ok { - t.Error("Unable to cast to gtk.Button") - } - - l, err := button.GetLabel() - if err != nil { - t.Error("Unable to get button label") - } - - if l != "gtk-ok" { - t.Errorf("Label has the wrong value: %q", l) - } - - done := make(chan bool) - - builder.ConnectSignals(map[string]interface{}{ - "ok_button_clicked": func() { - done <- true - }, - }) - - go button.Emit("clicked") - - select { - case <-done: - case <-time.After(1 * time.Second): - t.Error("Failed to call callback") - } -} - -func TestTextTagEvent(t *testing.T) { - textTag, err := TextTagNew("mytexttag") - if err != nil { - t.Error("could not create text tag") - } - - evk := gdk.EventKeyNew() - - var iter TextIter - ok := textTag.Event(textTag.Object, evk.Event, &iter) - - if ok { - t.Error("event should not have been handled") - } - - textTag.Connect("event", func() bool { - return true - }) - - ok = textTag.Event(textTag.Object, evk.Event, &iter) - - if !ok { - t.Error("event should have been handled") - } - -} |