EzDevInfo.com

smoke.js

framework-agnostic styled alert system for javascript smoke.js - framework-agnostic styled alert system for javascript

What is the difference between mobile application testing and web application testing [closed]

please friends help me out

1) what is the difference between mobile application testing and web application testing?

2) what is adhoc testing?

3) differences between sanity and smoke testing


Source: (StackOverflow)

How to use KDE's Smoke?

I can't get what the Smoke is. I've been expecting that smoke will generate C wrappers for C++ code and create header file with generated functions.

But running smokegen on C++ headers gives me tiny header, which just exports pointer to some Smoke class and <sourcename>_smoke_init() function.

What am i supposed to do with this?


Source: (StackOverflow)

Advertisements

Automated smoke testing of windows froms

We've got two windows form application we'd like to run automated smoke tests. The first one is Content maker, in this app user can create formulas and trees and ... . The second one is calculator, this app use the content and outputs (Database and XML files) of first app.

In first App (Content maker) we can use smoke tests easily, but in second one it's impossible to use smoke tests, because the contents was created by user and how we can check the results? I was wondering if anyone could suggest existing frameworks or applications that would help with that.


Source: (StackOverflow)

Dart Polymer: binding html files to scripts results in broken bootstrap.dart containing "%5C" characters

After doing a Pub Get and Pub Upgrade my custom-PolymerElements don't work anymore. It seems to me that the

<script type="application/dart" src="view.dart"></script>

is interpreted incorrectly. In my index.html_bootstrap.dart it is listed as: import 'dialog%5Cview.dart' as smoke_1; The "%5C" ( \ ) should be a slash ( / ) anyway and I'm pretty sure that it shouldn't be escaped. I tried it with the dart stable (1.8.5) and dev (1.9.0) versions for 64bit Windows.

I already tried to revert my package to their previous version but since I hadn't constraint them in my pubspec file I have no way to determine which versions worked before my changes. In another dart polymer project I'm working on I use the same setup (extended polymer elements) and it still works . The equivalent position in the index.html_bootstrap.dart reads: import 'dialog/view.dart' as smoke_1;

(edit) some (shortened) code:

/web/dialog/error/view.html

<link rel="import" rel='nofollow' href="packages/polymer/polymer.html">
<link rel="import" rel='nofollow' href="packages/paper_elements/paper_dialog.html">
<link rel="import" rel='nofollow' href="packages/core_elements/core_animated_pages.html">

<polymer-element name="error-view">
<template>
    <style>
        paper-dialog {
            margin-top: 20px;
            height: 400px;
            width: 600px; }     
    </style>
    <paper-dialog id="extendedNode" heading="{{dialogtitle}}" vertical autoCloseDisabled=true transition="paper-transition-center" opened=true>
      <content> 
      <core-animated-pages selected="{{page}}" valueattr="id" transitions="hero-transition cross-fade">
            <section id="0">
                    <p  cross-fade>A system error occured while connecting with the server.</p>
                    <br>
                    <p  cross-fade>Error message: {{dialogtext}}</p>
          </section>       
    </core-animated-pages>
    </content>
    </paper-dialog>
  </template>

<script type="application/dart" src="view.dart"></script>
</polymer-element>

/web/dialog/error/view.dart

import 'package:polymer/polymer.dart';
import '../view.dart'; // <- the base class 'DialogView'

  @CustomTag('error-view')
  class ErrorView extends DialogView{

    ErrorView.created() : super.created(){
    componentName = 'error-view';
    this.dialogtitle = 'System Error';
  }

}

/web/dialog/view.dart

import 'package:polymer/polymer.dart';
import 'dart:html';
import 'package:intl/intl.dart';

import '../locale/de.dart' as de;

class DialogView extends PolymerElement {
   @observable int page;
   //there are a lot of helper functions and variables in here
}

I use many pairs of those components extending the base component (which has no view.html but only a view.dart that allows me to hold and manipulate different dialogs within one List. This worked perfectly fine until I did the Pub Get / Upgrade and was not solved by repairing the cache. A project using a similar structure still works fine.


Source: (StackOverflow)

Using C, how to pass a string to the Smoke C++ API

Smoke provides an introspective C++ API wrapper to the Qt framework.
https://techbase.kde.org/Development/Languages/Smoke
https://techbase.kde.org/Development/Languages/Smoke/API_Documentation

SmokeC wraps the the Smoke wrapper with C functions to facilitate using the Smoke API from C.
https://github.com/pankajp/pysmoke/blob/master/smokec/smokec.cpp

Working example application in C (functionally identical to the C++ example in the first link above):
https://github.com/pankajp/pysmoke/blob/master/examples/hellowidget.c

I'm trying to modify this example application and add further calls to QWidget object methods, but I can't figure out how to call a method that takes a QString argument, such as setWindowTitle, whose signature is

void setWindowTitle(const QString &);

Here's my best guess:

/* Set the window title... Segfaults */    
methId = Smoke_findMethod(classId.smoke, "QWidget", "setWindowTitle$");
klass = Smoke_classes(classId.smoke)[classId.index];
meth = Smoke_methods(methId.smoke)[Smoke_methodMaps(methId.smoke)[methId.index].method];
stack[1].s_voidp = (void*)"hello universe";
(*klass.classFn)(meth.method, widget, stack);

... but this segfaults. Can anyone advise how I should construct a QString argument using the SmokeC wrapper?

My complete modified example application follows.

/* 
 * File:   hellowidget.c
 * Author: pankaj
 *
 * Created on November 19, 2013, 2:41 PM
 */


#include <stdio.h>
#include <string.h>
#include "smokec.h"
#include "bindings.h"


/*
 * In a bindings runtime, this should return the classname as used
 * in the bindings language, e.g. Qt::Widget in Ruby or
 * Qyoto.QWidget in C# or QtGui.QWidget in python
 */
char *className(CSmokeBinding binding, Index classId) {
    return (char*) Smoke_classes(CSmoke_FromBinding(binding))[classId].className;
}


void deleted(CSmokeBinding binding, Index classId, void *obj) 
{
}

cbool callMethod(CSmokeBinding binding, Index method, void *obj, Stack args, cbool isAbstract)
{
    return 0;
}


int main(int argc, char **argv)
{
    /* Initialize the Qt SMOKE runtime. */
    init_qtcore_CSmoke();
    init_qtgui_CSmoke();

    CSmoke qtcore_smoke = qtcore_CSmoke();
    CSmoke qtgui_smoke = qtgui_CSmoke();

    /* Create a SmokeBinding for the Qt SMOKE runtime. */
    CSmokeBinding qtcoreBinding = SmokeBinding_new(qtcore_smoke, deleted, callMethod, className);
    CSmokeBinding qtguiBinding = SmokeBinding_new(qtgui_smoke, deleted, callMethod, className);

    /* Find the 'QApplication' class. */
    CModuleIndex classId = findClass("QApplication");
    /* find the methodId. we use a munged method signature, where
     * $ is a plain scalar
     * # is an object
     * ? is a non-scalar (reference to array or hash, undef) */
    CModuleIndex methId = Smoke_findMethod(classId.smoke, "QApplication", "QApplication$?");  // find the constructor

    /* Get the Smoke::Class */
    Class klass = Smoke_classes(classId.smoke)[classId.index];

    // findMethod() returns an index into methodMaps, which has
    // information about the classId, methodNameId and methodId. we
    // are interested in the methodId to get a Smoke::Method
    Method meth = Smoke_methods(methId.smoke)[Smoke_methodMaps(methId.smoke)[methId.index].method];

    StackItem stack[3];
    // QApplication expects a reference to argc, so we pass it as a pointer
    stack[1].s_voidp = &argc;
    stack[2].s_voidp = argv;
    // call the constructor, Smoke::Method::method is the methodId
    // specifically for this class.
    (*klass.classFn)(meth.method, 0, stack);

    // the zeroth element contains the return value, in this case the
    // QApplication instance
    void *qapp = stack[0].s_voidp;

    // method index 0 is always "set smoke binding" - needed for
    // virtual method callbacks etc.
    stack[1].s_voidp = qtguiBinding.binding;
    (*klass.classFn)(0, qapp, stack);



    // create a widget
    classId = findClass("QWidget");
    methId = Smoke_findMethod(classId.smoke, "QWidget", "QWidget");

    klass = Smoke_classes(classId.smoke)[classId.index];
    meth = Smoke_methods(methId.smoke)[Smoke_methodMaps(methId.smoke)[methId.index].method];
    (*klass.classFn)(meth.method, 0, stack);

    void *widget = stack[0].s_voidp;
    // set the smoke binding
    stack[1].s_voidp = qtguiBinding.binding;
    (*klass.classFn)(0, widget, stack);

    /* Show the widget maximized.*/
    methId = Smoke_findMethod(classId.smoke, "QWidget", "showMaximized");
    meth = Smoke_methods(methId.smoke)[Smoke_methodMaps(methId.smoke)[methId.index].method];
    (*klass.classFn)(meth.method, widget, 0);

    /* Raise the window to the foreground */
    methId = Smoke_findMethod(classId.smoke, "QWidget", "raise");
    meth = Smoke_methods(methId.smoke)[Smoke_methodMaps(methId.smoke)[methId.index].method];
    (*klass.classFn)(meth.method, widget, 0);

    /* Set the modified indicator. */
    methId = Smoke_findMethod(classId.smoke, "QWidget", "setWindowModified$");
    meth = Smoke_methods(methId.smoke)[Smoke_methodMaps(methId.smoke)[methId.index].method];
    stack[1].s_bool = 1;
    (*klass.classFn)(meth.method, widget, stack);

    /* Set the window title... Segfaults */    
    methId = Smoke_findMethod(classId.smoke, "QWidget", "setWindowTitle$");
    klass = Smoke_classes(classId.smoke)[classId.index];
    meth = Smoke_methods(methId.smoke)[Smoke_methodMaps(methId.smoke)[methId.index].method];
    stack[1].s_voidp = (void*)"hello universe";
    (*klass.classFn)(meth.method, widget, stack);


    // we don't even need findClass() when we use the classId provided
    // by the MethodMap
    methId = Smoke_findMethod(qtgui_smoke, "QApplication", "exec");

    klass = Smoke_classes(methId.smoke)[Smoke_methodMaps(methId.smoke)[methId.index].classId];
    meth = Smoke_methods(methId.smoke)[Smoke_methodMaps(methId.smoke)[methId.index].method];

    // call QApplication::exec()
    (*klass.classFn)(meth.method, 0, stack);

    // store the return value of QApplication::exec()
    int retval = stack[0].s_int;

    // destroy the QApplication instance
    methId = Smoke_findMethod(qtgui_smoke, "QApplication", "~QApplication");

    meth = Smoke_methods(methId.smoke)[Smoke_methodMaps(methId.smoke)[methId.index].method];
    (*klass.classFn)(meth.method, qapp, 0);

    // destroy the smoke instance
    CSmoke_delete(qtgui_smoke);
    CSmoke_delete(qtcore_smoke);

    // return the previously stored value
    return retval;
}

Source: (StackOverflow)