Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  test_With.bas   Sprache: unbekannt

 
Untersuchungsergebnis.bas Download desUnknown {[0] [0] [0]}zum Wurzelverzeichnis wechseln

'
' This file is part of the LibreOffice project.
'
' This Source Code Form is subject to the terms of the Mozilla Public
' License, v. 2.0. If a copy of the MPL was not distributed with this
' file, You can obtain one at http://mozilla.org/MPL/2.0/.
'

Option Explicit

Function doUnitTest as String
    TestUtil.TestInit
    test_with
    doUnitTest = TestUtil.GetResult()
End Function

Sub DEV_TST : MsgBox doUnitTesT : End Sub

Type foo
    n As Integer
    s As String
End Type

Dim get_foo_count As Integer

Function get_foo As foo
    get_foo_count = get_foo_count + 1
    get_foo = New foo
End Function

Sub with_in_another_procedure
    On Local Error GoTo errorHandler
    ' tdf#162962 "End With" clears the internal variable; it used to fail,
    ' when several module's procedures used With blocks, using Option Explicit
    Dim foo_var As New foo
    With foo_var
        .n = 6
        TestUtil.AssertEqual(.n, 6, ".n")
    End With ' Here (or in similar places in other tests) a "Variable Not Defined" error was generated

    Exit Sub
errorHandler:
    TestUtil.ReportErrorHandler("with_in_another_procedure", Err, Error$, Erl)
End Sub

Sub test_with
    On Local Error GoTo errorHandler

    Dim fields As String
    With get_foo()
        .n = 5
        .s = "bar"
        fields = "n = " & .n & " s = " & .s
    End With
    ' get_foo must be called only once; before the fix, it failed with
    '  Number of calls to get_foo returned 4, expected 1
    TestUtil.AssertEqual(get_foo_count, 1, "Number of calls to get_foo")
    ' Before the fix, each use of . resulted in creation of a new 'foo' object,
    ' and previous assignments didn't reflect in the result; it failed with
    '  Field values returned n = 0 s = , expected n = 5 s = bar
    TestUtil.AssertEqual(fields, "n = 5 s = bar", "Field values")

    ' Make sure that With works with the original object, modifies it, and does not destroy
    Dim foo_var As New foo
    With foo_var
        .n = 6
        .s = "baz"
    End With
    fields = "n = " & foo_var.n & " s = " & foo_var.s
    TestUtil.AssertEqual(fields, "n = 6 s = baz", "Field values of foo_var")

    ' tdf#163219: make sure that assigning the variable in the block works
    Set foo_var = Nothing
    TestUtil.Assert(foo_var Is Nothing, "foo_var Is Nothing")
    With foo_var
        foo_var = New foo
        .n = 7
        .s = "something"
    End With
    TestUtil.AssertEqual(foo_var.n, 7, "foo_var.n")
    TestUtil.AssertEqual(foo_var.s, "something", "foo_var.s")

    ' tdf#162935: Test an UNO struct - it used to copy into the With variable, not used by ref
    Dim uno_struct As New com.sun.star.table.CellRangeAddress
    With uno_struct
        .Sheet = 1
        .StartColumn = 2
        .StartRow = 3
        .EndColumn = 4
        .EndRow = 5
    End With
    TestUtil.AssertEqual(uno_struct.Sheet, 1, "uno_struct.Sheet")
    TestUtil.AssertEqual(uno_struct.StartColumn, 2, "uno_struct.StartColumn")
    TestUtil.AssertEqual(uno_struct.StartRow, 3, "uno_struct.StartRow")
    TestUtil.AssertEqual(uno_struct.EndColumn, 4, "uno_struct.EndColumn")
    TestUtil.AssertEqual(uno_struct.EndRow, 5, "uno_struct.EndRow")

    with_in_another_procedure() ' test tdf#162962

    Exit Sub
errorHandler:
    TestUtil.ReportErrorHandler("test_with", Err, Error$, Erl)
End Sub

[ zur Elbe Produktseite wechseln0.85Quellennavigators  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge